java找出两个字符串中所有共同的子串_【Java笔记】
Leetcode 1.两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] res = new int[2]; //1.创建一个存放结果的数组res
HashMap<Integer,Integer> map = new HashMap<>(); //2.创建一个辅助的哈希表
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; //返回
}
}
详细理解:
1.map重要用法[map.put() map.get() map.containsKey()]
放入数据一般形式 -----put(object key, object value)
例如:map.put(1,”a”)
===============================================================
根据key获取对应的value一般形式-------get(object key)
例如:map.get(1);//获取到对应的key=1时的value=a;
===============================================================
判断是否包含某个元素一般形式containsKey(object Key)//是否包含某个元素。一般配合put和get,实现匹配并修改map中的元素。
相关链接:
Java中HashMap的用法_eck_燃的博客-CSDN博客blog.csdn.net2.charAt()-----用于返回指定位置的字符
var str=”Hello World!”
document.write(str.charAt(1))
输出结果:e
Leetcode3.最长无重复子串长度
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
解法1:双指针遍历一次
- 判断该字符在不在map中,若存在,更新左边界max{L,c_index+1};
- 将该字符及索引放到map中;
- 更新maxLen = max {maxLen,R-L+1}
4.返回maxLen
总结
以上是生活随笔为你收集整理的java找出两个字符串中所有共同的子串_【Java笔记】的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python百鸡百钱递归_百钱百鸡,一百
- 下一篇: add binary java_Leet