Skip to content

Commit 8919c9e

Browse files
committed
Solutions of Problems to Array added
1 parent 8d5523b commit 8919c9e

5 files changed

+220
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import java.util.*;
2+
import java.lang.*;
3+
import java.io.*;
4+
class GFG
5+
{
6+
public static void main (String[] args)
7+
{
8+
Scanner sc = new Scanner(System.in);
9+
int t = sc.nextInt();
10+
while (t-- != 0) {
11+
int n = sc.nextInt();
12+
int a[] = new int[n];
13+
for (int i = 0; i < n; i++) {
14+
a[i] = sc.nextInt();
15+
}
16+
for (int i = n - 1; i > 0; i--) {
17+
int temp = a[i - 1];
18+
a[i - 1] = a[i];
19+
a[i] = temp;
20+
}
21+
for (int i = 0; i < n; i++) {
22+
System.out.print(a[i] + " ");
23+
}
24+
System.out.println();
25+
}
26+
}
27+
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import java.util.*;
2+
import java.lang.*;
3+
import java.io.*;
4+
class GFG
5+
{
6+
static int findBitonic(int a[], int l, int r) {
7+
if (l == r) {
8+
return l;
9+
}
10+
if (r == l + 1 && a[l] >= a[r]) {
11+
return l;
12+
}
13+
if (r == l + 1 && a[r] > a[l]) {
14+
return r;
15+
}
16+
int mid = l + (r - l) / 2;
17+
18+
if (a[mid] > a[mid + 1] && a[mid] > a[mid - 1]) {
19+
return mid;
20+
}
21+
else if (a[mid] > a[mid - 1] && a[mid] < a[mid + 1]) {
22+
return findBitonic(a, mid + 1, r);
23+
}
24+
else {
25+
return findBitonic(a, l, mid - 1);
26+
}
27+
}
28+
static int ascBin(int a[], int x, int l, int r) {
29+
while (l <= r) {
30+
int mid = l + (r - l) / 2;
31+
if (a[mid] == x) {
32+
return mid;
33+
}
34+
else if (x < a[mid]) {
35+
r = mid - 1;
36+
}
37+
else {
38+
l = mid + 1;
39+
}
40+
}
41+
return -1;
42+
43+
}
44+
static int descBin(int a[], int x, int l, int r) {
45+
while (l <= r) {
46+
int mid = l + (r - l) / 2;
47+
if (a[mid] == x) {
48+
return mid;
49+
}
50+
else if (x < a[mid]) {
51+
l = mid + 1;
52+
}
53+
else {
54+
r = mid - 1;
55+
}
56+
}
57+
return -1;
58+
}
59+
static int searchNumber(int a[], int x, int bitP) {
60+
if (x > a[bitP]) {
61+
return -1;
62+
}
63+
if (x == a[bitP]) {
64+
return bitP;
65+
}
66+
else {
67+
int temp = ascBin(a, x, 0, bitP - 1);
68+
if (temp != -1) {
69+
return temp;
70+
}
71+
return descBin(a, x, bitP + 1, a.length - 1);
72+
}
73+
}
74+
public static void main (String[] args)
75+
{
76+
Scanner sc = new Scanner(System.in);
77+
int t = sc.nextInt();
78+
while (t-- != 0) {
79+
int n = sc.nextInt();
80+
int a[] = new int[n];
81+
int i, f = 0;
82+
for (i = 0; i < n; i++) {
83+
a[i] = sc.nextInt();
84+
}
85+
int x = sc.nextInt();
86+
int bitP = findBitonic(a, 0, n - 1);
87+
int ans = searchNumber(a, x, bitP);
88+
System.out.println(ans);
89+
90+
}
91+
}
92+
}

Array/Finding a Number X.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import java.util.*;
2+
import java.lang.*;
3+
import java.io.*;
4+
class GFG
5+
{
6+
public static void main (String[] args)
7+
{
8+
Scanner sc = new Scanner(System.in);
9+
int t = sc.nextInt();
10+
while (t-- != 0) {
11+
int n = sc.nextInt();
12+
int a[] = new int[n];
13+
int i, f = 0;
14+
for (i = 0; i < n; i++) {
15+
a[i] = sc.nextInt();
16+
}
17+
int x = sc.nextInt();
18+
for (i = 0; i < n; i++) {
19+
if (a[i] == x) {
20+
f = 1;
21+
break;
22+
}
23+
}
24+
if (f == 0) {
25+
System.out.println(-1);
26+
}
27+
else {
28+
System.out.println(i);
29+
}
30+
f = 0;
31+
}
32+
}
33+
}

Array/Floor in Sorted Array.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import java.util.*;
2+
import java.lang.*;
3+
import java.io.*;
4+
class GFG
5+
{
6+
static int findFloor(int a[], int x) {
7+
if (x >= a[a.length - 1]) {
8+
return a.length - 1;
9+
}
10+
for (int i = 0; i < a.length - 1; i++) {
11+
if (a[i] == x) {
12+
return i;
13+
}
14+
if (a[i] < x && a[i + 1] >= x) {
15+
return i + 1;
16+
}
17+
}
18+
return -1;
19+
}
20+
public static void main (String[] args)
21+
{
22+
Scanner sc = new Scanner(System.in);
23+
int t = sc.nextInt();
24+
while (t-- != 0) {
25+
int n = sc.nextInt();
26+
int x = sc.nextInt();
27+
int a[] = new int[n];
28+
for (int i = 0; i < n; i++) {
29+
a[i] = sc.nextInt();
30+
}
31+
System.out.println(findFloor(a, x));
32+
}
33+
}
34+
}

Array/Number of Occurences.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import java.util.*;
2+
import java.lang.*;
3+
import java.io.*;
4+
class GFG
5+
{
6+
public static void main (String[] args)
7+
{
8+
Scanner sc = new Scanner(System.in);
9+
int t = sc.nextInt();
10+
int f = 0;
11+
while (t-- != 0) {
12+
int n = sc.nextInt();
13+
int x = sc.nextInt();
14+
int a[] = new int[n];
15+
for (int i = 0; i < n; i++) {
16+
a[i] = sc.nextInt();
17+
}
18+
int cnt = 0;
19+
for (int i = 0; i < n; i++) {
20+
if (a[i] == x) {
21+
f = 1;
22+
cnt++;
23+
}
24+
}
25+
if (f == 1) {
26+
System.out.println(cnt);
27+
}
28+
else {
29+
System.out.println(-1);
30+
}
31+
f = 0;
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)