redo
This commit is contained in:
parent
f14703c22a
commit
bbb29153f5
21
src/main/java/cn/whaifree/leetCode/StaticObjTest.java
Normal file
21
src/main/java/cn/whaifree/leetCode/StaticObjTest.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package cn.whaifree.leetCode;
|
||||||
|
|
||||||
|
public class StaticObjTest {
|
||||||
|
static class Test{
|
||||||
|
// 静态变量存方法区
|
||||||
|
static ObjectHolder staticObj = new ObjectHolder();
|
||||||
|
// 成员变量存堆中
|
||||||
|
ObjectHolder instanceObj = new ObjectHolder();
|
||||||
|
|
||||||
|
void foo(){
|
||||||
|
// 变量名存放在foo()方法中的栈帧中的局部变量表中
|
||||||
|
ObjectHolder localObj = new ObjectHolder();
|
||||||
|
System.out.println("done");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static class ObjectHolder{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -1,130 +0,0 @@
|
|||||||
package cn.whaifree.leetCode;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @version 1.0
|
|
||||||
* @Author whai文海
|
|
||||||
* @Date 2024/2/27 17:58
|
|
||||||
* @注释
|
|
||||||
*/
|
|
||||||
public class T {
|
|
||||||
|
|
||||||
public int A() {
|
|
||||||
B();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void B() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Animal {
|
|
||||||
void eat();
|
|
||||||
}
|
|
||||||
|
|
||||||
class Hunter{
|
|
||||||
void hunt() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Cat extends Hunter implements Animal {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void hunt() {
|
|
||||||
System.out.println("cat hunt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void eat() {
|
|
||||||
System.out.println("cat eat");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Dog extends Hunter implements Animal {
|
|
||||||
|
|
||||||
public Dog() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Dog(String name) {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void hunt() {
|
|
||||||
System.out.println("dog hunt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void eat() {
|
|
||||||
System.out.println("dog eat");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class AnimalTest {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
// 晚期绑定,动态链接
|
|
||||||
// 运行时才能确定
|
|
||||||
Animal animal = new Cat();
|
|
||||||
animal.eat();
|
|
||||||
Hunter hunter = (Hunter) animal;
|
|
||||||
hunter.hunt();
|
|
||||||
|
|
||||||
// 静态多态
|
|
||||||
Dog dog = new Dog("!23");
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class Father{
|
|
||||||
public static void print(String str){
|
|
||||||
System. out. println("father "+str);
|
|
||||||
}
|
|
||||||
public void show(String str){
|
|
||||||
System. out. println("father"+str);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Son extends Father {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class VirtualMethodTest {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
Son.print("coder");
|
|
||||||
Father fa = new Father();
|
|
||||||
fa.show("a");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Picture{
|
|
||||||
int number = 0;
|
|
||||||
public Picture() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public Picture(int number) {
|
|
||||||
this.number = number;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[]args){
|
|
||||||
ArrayList<Picture> list = new ArrayList<>();
|
|
||||||
while(true){
|
|
||||||
try {
|
|
||||||
Thread.sleep(10);
|
|
||||||
} catch (InterruptedException e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
list.add(new Picture(new Random().nextInt(1024*1024)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
77
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode1005.java
Normal file
77
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode1005.java
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
package cn.whaifree.redo.redo_24_3_1;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.function.ToIntFunction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author whai文海
|
||||||
|
* @Date 2024/3/2 11:40
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
public class LeetCode1005 {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
int[] nums = new int[]{5,6,9,-3,3};
|
||||||
|
int k =2;
|
||||||
|
int res = new Solution1().largestSumAfterKNegations(nums, k);
|
||||||
|
System.out.println(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int largestSumAfterKNegations(int[] nums, int k) {
|
||||||
|
// 从小到大排序,把前面的负数替换后,如果k是否有剩余
|
||||||
|
Arrays.sort(nums);
|
||||||
|
int sum = 0;
|
||||||
|
int minInNums = Integer.MAX_VALUE;
|
||||||
|
for (int i = 0; i < nums.length; i++) {
|
||||||
|
if (nums[i] < 0 && k > 0) {
|
||||||
|
nums[i] = -nums[i];
|
||||||
|
k--;
|
||||||
|
}
|
||||||
|
minInNums = Math.min(minInNums, nums[i]);
|
||||||
|
sum += nums[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((k % 2 == 1 )) {
|
||||||
|
sum = sum - minInNums - minInNums;
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Solution1 {
|
||||||
|
public int largestSumAfterKNegations(int[] nums, int k) {
|
||||||
|
// 按照绝对值排序
|
||||||
|
nums = Arrays.stream(nums).boxed().sorted(new Comparator<Integer>() {
|
||||||
|
@Override
|
||||||
|
public int compare(Integer o1, Integer o2) {
|
||||||
|
return Math.abs(o2) - Math.abs(o1);
|
||||||
|
}
|
||||||
|
}).mapToInt(Integer::intValue).toArray();
|
||||||
|
|
||||||
|
|
||||||
|
int sum = 0;
|
||||||
|
// 9 -8 -7 6 4 3
|
||||||
|
for (int i = 0; i < nums.length; i++) {
|
||||||
|
if (nums[i] < 0 && k > 0) {
|
||||||
|
nums[i] = -nums[i];
|
||||||
|
k--;
|
||||||
|
}
|
||||||
|
sum += nums[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (k % 2 == 1 ) {
|
||||||
|
sum -= nums[nums.length - 1] + nums[nums.length - 1];
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -10,6 +10,11 @@ import org.junit.Test;
|
|||||||
*/
|
*/
|
||||||
public class LeetCode134 {
|
public class LeetCode134 {
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() {
|
public void test() {
|
||||||
System.out.println(new Solution().canCompleteCircuit(new int[]{1, 2, 3, 4, 5}, new int[]{3, 4, 5, 1, 2}));
|
System.out.println(new Solution().canCompleteCircuit(new int[]{1, 2, 3, 4, 5}, new int[]{3, 4, 5, 1, 2}));
|
||||||
|
49
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode135.java
Normal file
49
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode135.java
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package cn.whaifree.redo.redo_24_3_1;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author whai文海
|
||||||
|
* @Date 2024/3/3 12:16
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
public class LeetCode135 {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
new Solution().candy(new int[]{1, 0, 2, 4, 1});
|
||||||
|
}
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int candy(int[] ratings) {
|
||||||
|
// 从前往后,如果rating高,就+1糖果
|
||||||
|
int[] distribute = new int[ratings.length];
|
||||||
|
|
||||||
|
distribute[0] = 1;
|
||||||
|
for (int i = 1; i < ratings.length; i++) {
|
||||||
|
|
||||||
|
if (distribute[i]==0) distribute[i] = 1;
|
||||||
|
if (ratings[i] > ratings[i - 1]) {
|
||||||
|
distribute[i] = distribute[i - 1] + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = distribute.length - 1; i > 0; i--) {
|
||||||
|
// 需要同时满足 比两边都高
|
||||||
|
if (ratings[i - 1] > ratings[i]) {
|
||||||
|
distribute[i - 1] = Math.max(distribute[i - 1], distribute[i] + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int sum = 0;
|
||||||
|
for (int i : distribute) {
|
||||||
|
sum += i;
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
80
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode406.java
Normal file
80
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode406.java
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
package cn.whaifree.redo.redo_24_3_1;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author whai文海
|
||||||
|
* @Date 2024/3/3 12:30
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
public class LeetCode406 {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
String a = "d";
|
||||||
|
String b = "d";
|
||||||
|
System.out.println(a == b);
|
||||||
|
a = new String("d");
|
||||||
|
System.out.println("a=" + a);
|
||||||
|
System.out.println("b=" + b);
|
||||||
|
System.out.println(a == b);
|
||||||
|
|
||||||
|
new Solution().reconstructQueue(
|
||||||
|
new int[][]{{7, 0}, {4, 4}, {7, 1}, {5, 0}, {6, 1}, {5, 2}}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int[][] reconstructQueue(int[][] people) {
|
||||||
|
|
||||||
|
LinkedList<int[]> e = new LinkedList<>();
|
||||||
|
// 1. 安升高先排序,同身高k多的放后面
|
||||||
|
Arrays.sort(people, new Comparator<int[]>() {
|
||||||
|
@Override
|
||||||
|
public int compare(int[] o1, int[] o2) {
|
||||||
|
if (o1[0] == o2[0]) {
|
||||||
|
return o1[1] - o2[1];
|
||||||
|
}else {
|
||||||
|
return o2[0] - o1[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
for (int[] person : people) {
|
||||||
|
e.add(person[1], person);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return e.toArray(new int[people.length][]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class StringExer{
|
||||||
|
String str = new String("good");
|
||||||
|
char[] chars = {'a', 'b', 'c', 'd'};
|
||||||
|
|
||||||
|
public void change(String str, char[] chars) {
|
||||||
|
str = "bad";
|
||||||
|
chars[0] = 'e';
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
StringExer stringExer = new StringExer();
|
||||||
|
stringExer.change(stringExer.str, stringExer.chars);
|
||||||
|
System.out.println(stringExer.str);
|
||||||
|
System.out.println(stringExer.chars);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
56
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode491.java
Normal file
56
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode491.java
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
package cn.whaifree.redo.redo_24_3_1;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author whai文海
|
||||||
|
* @Date 2024/3/3 19:40
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
public class LeetCode491 {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
for (List<Integer> subsequence : new Solution().findSubsequences(new int[]{4,4,3,2,1})) {
|
||||||
|
System.out.println(subsequence);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
List<List<Integer>> res = new ArrayList<>();
|
||||||
|
LinkedList<Integer> path = new LinkedList<>();
|
||||||
|
|
||||||
|
public List<List<Integer>> findSubsequences(int[] nums) {
|
||||||
|
backTracking(nums, 0);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void backTracking(int[] nums, int start) {
|
||||||
|
if (path.size() >= 2) {
|
||||||
|
res.add(new LinkedList<>(path));
|
||||||
|
}
|
||||||
|
if (start >= nums.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
HashSet<Integer> set = new HashSet<>();
|
||||||
|
for (int i = start; i < nums.length; i++) {
|
||||||
|
|
||||||
|
if ((path.isEmpty() || path.getLast() <= nums[i]) && !set.contains(nums[i])) {
|
||||||
|
path.add(nums[i]);
|
||||||
|
set.add(nums[i]);
|
||||||
|
backTracking(nums, i + 1);
|
||||||
|
path.removeLast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package cn.whaifree.redo.redo_24_3_1;
|
package cn.whaifree.redo.redo_24_3_1;
|
||||||
|
|
||||||
import cn.whaifree.leetCode.T;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
45
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode860.java
Normal file
45
src/main/java/cn/whaifree/redo/redo_24_3_1/LeetCode860.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package cn.whaifree.redo.redo_24_3_1;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author whai文海
|
||||||
|
* @Date 2024/3/3 11:57
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
public class LeetCode860 {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
System.out.println(new Solution().lemonadeChange(new int[]{5,5,10,10,20}));
|
||||||
|
}
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public boolean lemonadeChange(int[] bills) {
|
||||||
|
|
||||||
|
int haveFive = 0;
|
||||||
|
int haveTen = 0;
|
||||||
|
for (int bill : bills) {
|
||||||
|
if (bill == 5) {
|
||||||
|
haveFive++;
|
||||||
|
} else if (bill == 10) {
|
||||||
|
haveTen++;
|
||||||
|
haveFive--;
|
||||||
|
} else if (bill == 20) {
|
||||||
|
if (haveTen >= 1) {
|
||||||
|
haveTen--;
|
||||||
|
haveFive--;
|
||||||
|
}else {
|
||||||
|
haveFive -= 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (haveFive < 0 || haveTen < 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user