java找出两个字符串中所有共同的子串_【Java笔记】
Leetcode 1.兩數(shù)之和
給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target,請(qǐng)你在該數(shù)組中找出和為目標(biāo)值的那 兩個(gè) 整數(shù),并返回他們的數(shù)組下標(biāo)。
你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是,數(shù)組中同一個(gè)元素不能使用兩遍。
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] res = new int[2]; //1.創(chuàng)建一個(gè)存放結(jié)果的數(shù)組res
HashMap<Integer,Integer> map = new HashMap<>(); //2.創(chuàng)建一個(gè)輔助的哈希表
for(int i = 0; i < nums.length; i ++){ //3.遍歷
int tmp = target - nums[i]; //作差
if(map.containsKey(tmp)){ //判斷
res[0] = map.get(tmp);
res[1] = i;
break;
}
map.put(nums[i],i);
}
return res; //返回
}
}
詳細(xì)理解:
1.map重要用法[map.put() map.get() map.containsKey()]
放入數(shù)據(jù)一般形式 -----put(object key, object value)
例如:map.put(1,”a”)
===============================================================
根據(jù)key獲取對(duì)應(yīng)的value一般形式-------get(object key)
例如:map.get(1);//獲取到對(duì)應(yīng)的key=1時(shí)的value=a;
===============================================================
判斷是否包含某個(gè)元素一般形式containsKey(object Key)//是否包含某個(gè)元素。一般配合put和get,實(shí)現(xiàn)匹配并修改map中的元素。
相關(guān)鏈接:
Java中HashMap的用法_eck_燃的博客-CSDN博客?blog.csdn.net2.charAt()-----用于返回指定位置的字符
var str=”Hello World!”
document.write(str.charAt(1))
輸出結(jié)果:e
Leetcode3.最長(zhǎng)無(wú)重復(fù)子串長(zhǎng)度
給定一個(gè)字符串,請(qǐng)你找出其中不含有重復(fù)字符的最長(zhǎng)子串的長(zhǎng)度。
解法1:雙指針遍歷一次
- 判斷該字符在不在map中,若存在,更新左邊界max{L,c_index+1};
- 將該字符及索引放到map中;
- 更新maxLen = max {maxLen,R-L+1}
4.返回maxLen
總結(jié)
以上是生活随笔為你收集整理的java找出两个字符串中所有共同的子串_【Java笔记】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python百鸡百钱递归_百钱百鸡,一百
- 下一篇: mysql去掉两个最高分_如何计算去掉一