Skip to content

Commit 4ad6d93

Browse files
committed
New Problems
1 parent 1f3748a commit 4ad6d93

File tree

4 files changed

+118
-0
lines changed

4 files changed

+118
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
public class All_PeakFinder_1D_Linear_Search{
2+
3+
public static void findPeak(int[] A) {
4+
5+
if (A == null || A.length == 0) {
6+
return;
7+
}
8+
int n = A.length;
9+
10+
for (int i = 0; i < n; i++){
11+
int left = 0, right = 0;
12+
if (i > 0){
13+
left = A[i - 1];
14+
}
15+
if (i < A.length - 1){
16+
right = A[i + 1];
17+
}
18+
if (left <= A[i] && A[i] >= right){
19+
System.out.println(A[i] + "");
20+
}
21+
}
22+
}
23+
24+
public static void main(String[] args) {
25+
int[] A = { 35, 5, 20, 2, 40, 25, 80, 25, 15, 40 };
26+
findPeak(A);
27+
}
28+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
public class Highest_PeakFinder_1D_Linear_Search{
2+
3+
public static Integer findPeak(int[] A) {
4+
5+
if (A == null || A.length == 0) {
6+
return null;
7+
}
8+
9+
int n = A.length;
10+
int peak = A[0];
11+
for (int i = 1; i < n-1; i++){
12+
if (A[i - 1] <= A[i] && A[i] >= A[i + 1]){
13+
peak = A[i];
14+
}
15+
}
16+
if (peak < A[A.length-1]){
17+
peak = A[A.length-1];
18+
}
19+
return peak;
20+
}
21+
22+
public static void main(String[] args) {
23+
int[] A = { 35, 5, 20, 2, 40, 25, 80, 25, 15, 40 };
24+
Integer peak = findPeak(A);
25+
System.out.println(peak != null ? "Peak Element is " + peak : "No peak element!" );
26+
}
27+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
public class PeakFinder_1D_Binary_Search{
2+
3+
public static Integer findPeak(int[] A) {
4+
if (A == null || A.length == 0) {
5+
return null;
6+
}
7+
8+
int left = 0, right = A.length - 1, mid;
9+
while (left + 1 < right){
10+
mid = left + (right - left) / 2;
11+
if (A[mid] < A[mid - 1]){
12+
right = mid;
13+
}
14+
else if (A[mid] < A[mid + 1]){
15+
left = mid;
16+
}
17+
else{
18+
return mid;
19+
}
20+
}
21+
if (A[left] > A[right]){
22+
mid = left;
23+
}
24+
else{
25+
mid = right;
26+
}
27+
return mid;
28+
}
29+
30+
public static void main(String[] args) {
31+
int[] A = { 35, 5, 20, 2, 40, 25, 80, 25, 15, 40 };
32+
Integer peak = findPeak(A);
33+
System.out.println(peak != null ? "Peak Element is " + A[peak] : "No peak element!" );
34+
}
35+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
public class PeakFinder_1D_Linear_Search{
2+
3+
public static Integer findPeak(int[] A) {
4+
5+
if (A == null || A.length == 0) {
6+
return null;
7+
}
8+
9+
int n = A.length;
10+
int peak = A[0];
11+
for (int i = 1; i < n; i++){
12+
if (A[i - 1] <= A[i] && A[i] >= A[i + 1]){
13+
peak = A[i];
14+
return peak;
15+
}
16+
}
17+
if (peak < A[A.length-1]){
18+
peak = A[A.length-1];
19+
}
20+
return null;
21+
}
22+
23+
public static void main(String[] args) {
24+
int[] A = { 35, 5, 20, 2, 40, 25, 80, 25, 15, 40 };
25+
Integer peak = findPeak(A);
26+
System.out.println(peak != null ? "Peak Element is " + peak : "No peak element!" );
27+
}
28+
}

0 commit comments

Comments
 (0)