LeetCode复习
findDuplicate & findDuplicates
都是在长位n的数组里面出现重复的数字,数字在1-n之间
第一题重复的数字为一个,可重复一次以上;第二题重复的数字为多个,重复的次数为2次
都可以使用遍历的方法,先遍历数组记录每个数字出现的次数,再从记录中找到重复次数大于2的即可。但是对于第一题效率不高,第二题还可以
也可采用索引的方法或Cycle Detection
1 | //龟兔赛跑,快的和慢的会在环内相遇,并且从相遇点到环首和从头到环首的路程相等 |
1 | class Solution { |
longest palindromic substring & longest palindromic subsequence
substring需要连续的;subsequence可以不连续
都可以用DP解决,但是substring主要关注的是当前位置是否可以构成回文的(连续的);而subsequence则关注的是当前位置的最大回文长度
1 | public String longestPalindrome(String s) { |
1 | public int longestPalindromicSubsequence(string s) { |
计数排序count sort
1 | class Solution { |
1 | class Solution { |