04 2019 档案
摘要:只能说还是太菜,抄的网上大神的做法: idea: 1. mask 的每一位代表该位字母够不够k次,够k次为0,不够为1 2. 对于每一位将其视为起点,遍历至末尾,找到其最大满足子串T的下标max_idx,之后从max_idx+1开始遍历。 代码如下: java public int longestS
阅读全文
摘要:搬运工了 https://blog.csdn.net/jmspan/article/details/51460021
阅读全文
摘要:A题: 一道dp的题目 dp[i][j] = k 代表 i行放j个棋子有k中可能 dp[i][j] = dp[i 1][0] + dp[i 1][1] + dp[i 1][2] +...dp[i 1][j] 初始 dp[1][0] = 1, dp[1][1] = 1 注意点: 1. BigInteg
阅读全文
摘要:idea: 1.从后向前找 2.while (tx ty) tx = ty; 替为 % 操作 3.经过循环后,必定只有两种情况才true 1. sx == tx && sy sx && ty sy){ if (tx ty) tx %= ty; else ty %= tx; } return sx =
阅读全文
摘要:很强的一道题! 核心点: 1.右括号多了? 怎么删除能够避免重复?比如())怎么避免删除的重复。s.charAt(j) == par[1] && (j == last_j || s.charAt(j 1) != par[1]) 此条件就能紧紧的限制住! s要删除的时候,必须得是右括号,要不就是第一个
阅读全文
摘要:看到这道题目,求脱困的最短路径,首先就想到了bfs, 但是这里有一点不同的是(难受的是): 1.他有10扇门,10把钥匙,怎么去拿钥匙去开门,钥匙和门怎么对应? 2.同样一个点,拿到钥匙a,b,c的时候,和只拿到钥匙b。这样的时候明显是不同的。 因为 : 这个时候,如果遇到了门A,拿到钥匙a,b,c
阅读全文
摘要:注意点: java split 分割'.' 要进行转义 java public int compareVersion(String version1, String version2) { String[] sv1 = version1.split("\\."); String[] sv2 = ve
阅读全文
摘要:```java import java.io. ; import java.util. ; public class Main{ public static int patch(int[] h,int[] w){ Arrays.sort(h); Arrays.sort(w); int res = 0
阅读全文
摘要:解题的思路并不复杂:模拟算数的乘法运算过程 但是一次直接AC还是比较困难的。 注意点: 1.进位 每一轮的进位最终存在的话,还需要加上 2.高位和低位的存储问题 3.输入,输出问题 输出ACM,采用System,out.println(); java import java.io. ; import
阅读全文
摘要:利用快慢指针: 这里快指针要走n+1步,会出现走过界的情况,就在他们前面加入一个start节点,完全不影响,因为slow和fast始终差n. java public ListNode removeNthFromEnd(ListNode head, int n) { //利用快慢指针 ListNode
阅读全文
摘要:第一题:主要看一下输入输出. java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import ja
阅读全文
摘要://使用java dfs python dp
阅读全文
摘要:```java int res = 0; int ab = 0; for(int i = 0;i
阅读全文
摘要:```java public int reverse(int x) { long res = 0; while (x != 0){ res = res 10 + x % 10; x /= 10; } if(res = Integer.MAX_VALUE || res
阅读全文
摘要:```java public String longestPalindrome(String s) { String rs = ""; int res = 0; for(int i = 0; i= 0 && s.charAt(i) == s.charAt(left)) left --; while(right = 0 &...
阅读全文
摘要:自己写的: java if(numRows == 1) return s; int ll = s.length() / 2 + 1; Character tc[] = new Character[numRows ll]; int i = 0, j = 0; boolean down = true;
阅读全文
摘要:idea: 设置一个hashset存储非重复元素 j:遍历s i:最近的一个非重复指针 注意点: 1.Set set = new HashSet(); 2. add remove java public int lengthOfLongestSubstring(String s) { int i =
阅读全文
摘要:注意点: 1. 最后的进位 2. (l1 == null || l1.next == null) 3. break;
阅读全文
摘要:注意点: 1. HashMap 2. return new int[]{}; 3. 3 2 4 target:6 4. return null; java public int[] twoSum(int[] nums, int target) { HashMap m = new HashMap();
阅读全文
摘要:输出 if 语句 if...else... 语句 if...else if...else... 语句 while do...while for 三目运算 声明变量 int String, String int 判断string变量是否是数字 字符串的常见操作 char[] 与 String 的相互转
阅读全文