add
This commit is contained in:
parent
7d263d1735
commit
38daf3ac26
@ -21,4 +21,15 @@ public class Q121 {
|
|||||||
return max;
|
return max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int maxProfile1(int[] prices) {
|
||||||
|
if (prices.length == 1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int res = 0, minP = prices[0];
|
||||||
|
for (int price : prices) {
|
||||||
|
minP = Math.min(minP, price);
|
||||||
|
res = Math.max(res, price - minP);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
53
5.leetcode/src/com/fanxb/common/Q33.java
Normal file
53
5.leetcode/src/com/fanxb/common/Q33.java
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
public class Q33 {
|
||||||
|
|
||||||
|
|
||||||
|
public int search(int[] nums, int target) {
|
||||||
|
int n = nums.length;
|
||||||
|
if (n == 1) return nums[0] == target ? 0 : -1;
|
||||||
|
int l = 0, r = n - 1;
|
||||||
|
while (l < r) {
|
||||||
|
boolean s = nums[l] < nums[r];
|
||||||
|
int m = (l + r) / 2;
|
||||||
|
if (nums[m] == target) {
|
||||||
|
return m;
|
||||||
|
} else {
|
||||||
|
if (nums[m] >= nums[0]) {
|
||||||
|
//说明m落在左边的升序
|
||||||
|
if (nums[m] < target) {
|
||||||
|
if (l == m) l++;
|
||||||
|
else l = m;
|
||||||
|
} else {
|
||||||
|
if (!s && nums[l] > target) {
|
||||||
|
//说明target在右边的升序里
|
||||||
|
if (l == m) l++;
|
||||||
|
else l = m;
|
||||||
|
} else {
|
||||||
|
r = m;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//m落在右边的升序
|
||||||
|
if (nums[m] > target) {
|
||||||
|
r = m;
|
||||||
|
} else {
|
||||||
|
if (s || nums[l] > target) {
|
||||||
|
//说明target在右边的升序里
|
||||||
|
if (l == m) l++;
|
||||||
|
else l = m;
|
||||||
|
} else {
|
||||||
|
r = m;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nums[l] == target ? l : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(new Q33().search(new int[]{1, 3}, 0));
|
||||||
|
}
|
||||||
|
}
|
36
5.leetcode/src/com/fanxb/common/Q68.java
Normal file
36
5.leetcode/src/com/fanxb/common/Q68.java
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package com.fanxb.common;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created with IntelliJ IDEA
|
||||||
|
*
|
||||||
|
* @author fanxb
|
||||||
|
* Date: 2020/6/11 9:56
|
||||||
|
*/
|
||||||
|
public class Q68 {
|
||||||
|
public int searchInsert(int[] nums, int target) {
|
||||||
|
int l = 0, r = nums.length - 1;
|
||||||
|
while (l < r) {
|
||||||
|
int m = (l + r) / 2;
|
||||||
|
if (nums[m] > target) {
|
||||||
|
if (r == m) {
|
||||||
|
l++;
|
||||||
|
} else {
|
||||||
|
r = m;
|
||||||
|
}
|
||||||
|
} else if (nums[m] == target) {
|
||||||
|
return m;
|
||||||
|
} else {
|
||||||
|
if (l == m) {
|
||||||
|
l++;
|
||||||
|
} else {
|
||||||
|
l = m;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nums[l] < target ? l + 1 : l;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(new Q68().searchInsert(new int[]{1, 3, 5, 6}, 5));
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user