![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
weixin_42673583
这个作者很懒,什么都没留下…
展开
-
leetcode 20
很难 一般不考 inplace算法 重要 f(i,N) 给定一个i位置,知道最终在哪个位置 当长度是3^k-1 环的起始点是1,3,。。。3k−13^{k-1}3k−1原创 2022-03-05 17:11:29 · 47 阅读 · 0 评论 -
leetcode 19
暴力递归 import java.util.ArrayList; import java.util.List; public class SplitNumber2 { public static int ways1(int n){ if(n < 1){ return 0; } return process(1,n); } public static int process(int pre,int r.原创 2022-03-03 14:35:44 · 63 阅读 · 0 评论 -
leetcode 18
第一种思路,将str倒过来设置为str2.将str和str2的最长公共子序列求出来就可以了,一个做行 一个做列 dp操作 第二个思路,两个位置 一个L 一个R 同样一个行 一个列,不用倒过来,一个str就够了, 分为四种情况 包含LR 只包含L 只包含R 都不包含 dp操作 public class SnakeGam { public static int walk1(int[][] matrix){ if(matrix == null || matrix.length ==.原创 2022-02-27 14:50:19 · 109 阅读 · 0 评论 -
leetcode 17
import java.util.*; public class BuildingOutline { public static class Op{ public int x; public boolean isAdd;//true为+ public int h; public Op(int x,boolean isAdd,int h) { this.x = x; th.原创 2022-02-26 16:39:16 · 59 阅读 · 0 评论 -
leetcode 15
import java.net.Inet4Address; import java.util.HashMap; public class LongestSumEqualK { public static class Node{ int value; public Node left; public Node right; public Node(int v){ value = v; } .原创 2022-02-24 15:39:46 · 207 阅读 · 0 评论 -
leetcode 14
public class DungenonGame { public static int needMin(int[][] matrix) { return process(matrix, matrix.length, matrix[0].length, 0, 0); } public static int process(int[][] matrix, int N, int M, int row, int col) { if (row == N .原创 2022-02-23 01:47:02 · 113 阅读 · 0 评论 -
leetcode 13
i位置 小于等于k的 离k最近的累加和,其中最近的就是我要的答案 利用前缀和转换 所有前缀和加到有序表 如果单调性 并且都是正数可以窗口,但是这里面有正有负 import java.util.TreeSet; public class MaxSubArraySumLessOrEqualk { public static int getMaxLessOrEqualk(int[] arr,int k){ //记录i之前的缀和 TreeSet<Integer>.原创 2022-02-22 20:46:24 · 6913 阅读 · 0 评论 -
leetcode 12
import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; public class LongestIntergratedLength { public static int getLIL1(int[] arr) { if (arr == null || arr.length == 0) { return 0; } int len.原创 2022-02-22 17:23:34 · 60 阅读 · 0 评论 -
leetcode 11
import java.util.HashMap; public class ReceiveAndPrintOrderList { public static class Node{ public String info; public Node next; public Node(String str){ info = str; } } public static class Messa.原创 2022-02-22 14:33:07 · 45 阅读 · 0 评论 -
leetcode 9
public class TopKSumCrossTwoArrays { public static class Node{ public int index1; public int index2; public int sum; public Node(int i1,int i2,int s){ index1 = i1; index2 = i2; sum =.原创 2022-02-20 21:32:49 · 9076 阅读 · 0 评论 -
leetcode 8
a^b = c 则b= c^a a = c^b 两种方法,第二种方法相等于第一种的加速寻找最大的,用了前缀树,用了32位补码相关知识 public class MaxEor { public static int maxXorSubarray1(int[] arr){ if(arr == null || arr.length == 0){ return 0; } int[] eor = new int[arr.length]; .原创 2022-02-20 15:32:14 · 253 阅读 · 0 评论 -
leetcode 7
dp压缩的方法 public static int minCost3(String s1,String s2){ if(s1.length() == 0 || s2.length() == 0){ return s2.length(); } char[] str2 = s2.toCharArray(); char[] str1 = s1.toCharArray(); int M = str2.l.原创 2022-02-18 21:28:21 · 231 阅读 · 0 评论 -
leetcode 3
max{min{左max,右边max}-[i],0} public class TrappingRainWater { public static int water(int[] arr){ if(arr == null || arr.length==0){ return 0; } int N = arr.length; int L = 1; int leftMax = arr[0]; .原创 2022-02-18 00:35:58 · 138 阅读 · 0 评论 -
leetcode 2
public class MakeNo { public static int[] makeNo(int size){ if(size == 1){ return new int[] {1}; } /** * size * 一半 * [4个奇数,3个偶数] * 如果奇数满足,2*奇数-1也满足 偶数也是,交叉也是,数学证明 */ .原创 2022-02-17 20:44:22 · 199 阅读 · 0 评论 -
leetcode 4
public class LCSubstring { public static String lcst2(String s1,String s2){ if(s1 == null || s2 == null || s1.equals("")||s2.equals("")){ return ""; } char[] str1 = s1.toCharArray(); char[] str2 = s2.toChar..原创 2022-02-18 01:04:13 · 7082 阅读 · 0 评论 -
leetcode 5
最长公共子序列 public class LCSubsequence { public static int lcs(String s1,String s2){ char[] str1 = s1.toCharArray(); char[] str2 = s2.toCharArray(); int N = str1.length; int M = str2.length; return process(str1,str2原创 2022-02-18 12:43:40 · 212 阅读 · 0 评论 -
leetcode 6
思路:下面的方法验证全是负数的时候正确,剩下的肯定有正数的情况,假设答案法。假设最长子数组的前缀累加和肯定不小于0的,最长子数组肯定不大于0的, public class SubArrayMa { public static int maxSum(int[] arr){ if(arr == null || arr.length == 0){ return 0; } int max = Integer.MIN_VALUE; .原创 2022-02-18 15:10:43 · 276 阅读 · 0 评论 -
leetcode 1
public class CoverMaxPoint { public static int maxPoint1(int[] arr,int L){ int res = 1; for (int i = 0; i < arr.length; i++) { int nearest = nearestIndex(arr,i,arr[i]-L); res = Math.min(res,i-nearest+1); .原创 2022-02-17 15:47:04 · 58 阅读 · 0 评论