187. 重复的DNA序列
class Solution {
public List findRepeatedDnaSequences(String s) {
int n=s.length();
ArrayList list=new ArrayList<>();
if(n<10) return list;
HashMap map=new HashMap<>();
for(int i=0;i<=n-10;i++){
String temp=s.substring(i,i+10);
map.put(temp,map.getOrDefault(temp,0)+1);
if(map.get(temp)==2) list.add(temp);
}
return list;
}
}
3. 无重复字符的最长子串
class Solution {
public int lengthOfLongestSubstring(String s) {
HashMap map=new HashMap<>();
int n=s.length();
int max=0;
int left=0;
for(int i=0;i
209. 长度最小的子数组
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int sum=0;
for(int num:nums) sum+=num;
if(sum=target){
min=Math.min(min,i-left+1);
sum-=nums[left];
left++;
}
}
return min;
}
}
77. 组合
class Solution {
List> res=new ArrayList<>();
List path=new ArrayList<>();
public List> combine(int n, int k) {
backtracking(n,k,1);
// backtracking(n,k,0);
return res;
}
public void backtracking(int n,int k,int index){
if(path.size()==k){
res.add(new ArrayList<>(path));
return;
}
//注意:这里的第一个数从一开始而不是0
// for(int i=index;i(path));
// return;
// }
path.add(i);
backtracking(n,k,i+1);
path.remove(path.size()-1);
}
}
}