周赛262
This commit is contained in:
parent
0158df232a
commit
e820af55ab
91
src/main/java/com/code/leet/week/Solution262.java
Normal file
91
src/main/java/com/code/leet/week/Solution262.java
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
package com.code.leet.week;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description:
|
||||||
|
* @author: Administrator
|
||||||
|
* @date: 2021/8/22-10:29
|
||||||
|
*/
|
||||||
|
public class Solution262 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Solution262 solution = new Solution262();
|
||||||
|
// solution.minOperations(new int[][]{{2,4},{6,8}},2);
|
||||||
|
// solution.minOperations(new int[][]{{931, 128}, {639, 712}}, 73);
|
||||||
|
StockPrice stockPrice = new StockPrice();
|
||||||
|
stockPrice.update(1,10);
|
||||||
|
stockPrice.update(2,5);
|
||||||
|
stockPrice.current();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Integer> twoOutOfThree(int[] nums1, int[] nums2, int[] nums3) {
|
||||||
|
List<Integer> temp = new ArrayList<>();
|
||||||
|
Arrays.sort(nums1);
|
||||||
|
Arrays.sort(nums2);
|
||||||
|
Arrays.sort(nums3);
|
||||||
|
for (int i = 0; i < nums1.length; i++) {
|
||||||
|
if (i == 0 || nums1[i] != nums1[i - 1]) {
|
||||||
|
temp.add(nums1[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<Integer> result = new ArrayList<>();
|
||||||
|
for (int i = 0; i < nums2.length; i++) {
|
||||||
|
if (i == 0 || nums2[i] != nums2[i - 1]) {
|
||||||
|
int num = nums2[i];
|
||||||
|
if (temp.contains(num)) {
|
||||||
|
if (!result.contains(num)) {
|
||||||
|
result.add(num);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
temp.add(num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 0; i < nums3.length; i++) {
|
||||||
|
if (i == 0 || nums3[i] != nums3[i - 1]) {
|
||||||
|
int num = nums3[i];
|
||||||
|
if (temp.contains(num)) {
|
||||||
|
if (!result.contains(num)) {
|
||||||
|
result.add(num);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
temp.add(num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int minOperations(int[][] grid, int x) {
|
||||||
|
List<Integer> list = new ArrayList<>();
|
||||||
|
for (int[] ints : grid) {
|
||||||
|
for (int j = 0; j < grid[0].length; j++) {
|
||||||
|
list.add(ints[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Collections.sort(list);
|
||||||
|
int num = list.get(0);
|
||||||
|
list.set(0, 0);
|
||||||
|
boolean bl = true;
|
||||||
|
int sum = 0;
|
||||||
|
for (int i = 1; i < list.size(); i++) {
|
||||||
|
if ((list.get(i) - num) % x == 0) {
|
||||||
|
list.set(i, (list.get(i) - num) / x);
|
||||||
|
sum += list.get(i);
|
||||||
|
} else {
|
||||||
|
bl = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int bef = sum;
|
||||||
|
for (int i = 1; i < list.size(); i++) {
|
||||||
|
bef += (-list.size() + 2 * i) * list.get(i);
|
||||||
|
sum = Math.min(sum, bef);
|
||||||
|
}
|
||||||
|
return bl ? sum : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
50
src/main/java/com/code/leet/week/StockPrice.java
Normal file
50
src/main/java/com/code/leet/week/StockPrice.java
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
package com.code.leet.week;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description:
|
||||||
|
* @author: Administrator
|
||||||
|
* @date: 2021/10/10-11:53
|
||||||
|
*/
|
||||||
|
class StockPrice {
|
||||||
|
|
||||||
|
Map<Integer, Integer> map;
|
||||||
|
int max;
|
||||||
|
int min;
|
||||||
|
int cur;
|
||||||
|
int price;
|
||||||
|
|
||||||
|
public StockPrice() {
|
||||||
|
map = new HashMap<>();
|
||||||
|
max = Integer.MIN_VALUE;
|
||||||
|
min = Integer.MAX_VALUE;
|
||||||
|
cur = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update(int timestamp, int price) {
|
||||||
|
map.put(timestamp, price);
|
||||||
|
if (timestamp >= cur) {
|
||||||
|
this.price = price;
|
||||||
|
}
|
||||||
|
max = price;
|
||||||
|
min = price;
|
||||||
|
for (int key : map.keySet()) {
|
||||||
|
max = Math.max(max, map.get(key));
|
||||||
|
min = Math.min(min, map.get(key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int current() {
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int maximum() {
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int minimum() {
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user