代码随想录算法训练营第6天 | 哈希表的应用、复习快慢指针思想
1.代码随想录算法训练营第2天 | 数组滑动窗口、螺旋打印2.代码随想录算法训练营第1天 | 数组二分法、数组双指针3.代码随想录算法训练营第3天 | 链表删除元素、翻转链表4.代码随想录算法训练营第4天 | 链表两两交换、删除倒N、链表相交、环形链表
5.代码随想录算法训练营第6天 | 哈希表的应用、复习快慢指针思想
6.代码随想录算法训练营第7天 | 哈希表和双指针结合、三数和四数之和7.代码随想录算法训练营第8天 | 复习字符串API、双指针8.代码随想录算法训练营第9天 | 复习字符串匹配、KMP9.代码随想录算法训练营第10天 | 复习队列和栈10.代码随想录算法训练营第11天 | 复习逆波兰表达式求值11.代码随想录算法训练营第13天 | 复习二叉树基础12.代码随想录算法训练营第14天 | 复习二叉树翻转13.代码随想录算法训练营第15天 | 二叉树进阶14.代码随想录算法训练营第16天 | 二叉树更加进阶15.代码随想录算法训练营第17天 | 复习二叉搜索树16.代码随想录算法训练营第18天 | 二叉搜索树进阶17.代码随想录算法训练营第20天 | 二叉搜索树中级18.代码随想录算法训练营第21天 | 二叉搜索树结尾19.代码随想录算法训练营第22天 | 开始复习回溯20.代码随想录算法训练营第23天 | 回溯进阶21.代码随想录算法训练营第24天 | 复习组合问题22.代码随想录算法训练营第25天 | 回溯问题完结23.代码随想录算法训练营第27天 | 初入贪心24.代码随想录算法训练营第28天 | 贪心进阶2024年7月8日
内容:哈希表的应用
题242. 有效的字母异位词
字母异位词,简单的思考是用数组或哈希表记录每个字母出现的次数然后用两次循环记录,第一个加1第二个减1,最后如果有不为0的就不是。
更快的题解是先排序,然后直接比较是否相等即可。
题349. 两个数组的交集
用set做。最后用list存起来然后转数组返回即可。
可以用stream直接转:
set1.stream().mapToInt(x -> x).toArray();
题202. 快乐数
普通做法是用set存每次结果,然后看是否有重复;
也可以考虑用双指针更快,快的每次执行两次结果,如果快的等于慢的了,就说明有循环。
有循环的类似题目都可以考虑用双指针思想。
此外还要熟练掌握取整数每个位置的数的代码段:`
class Solution {
public boolean isHappy(int n) {
HashSet<Integer> set1 = new HashSet<>();
int x=0;
while(true){
x = tihuan(n);
if(x==1){
return true;
}else{
if(set1.contains(x)){
return false;
}else{
set1.add(x);
n=x;
continue;
}
}
}
}
public int tihuan(int n){
int sum = 0;
while(n>0){
sum+=(n%10)*(n%10);
n/=10;
}
return sum;
}
}
题1. 两数之和
用哈希表存储每个数组元素值和其对应下标,然后在后面遍历的时候就直接检查有没有target-元素值这个key,如果有就可以迅速返回了,时间复杂度就是O(n)。
class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> map1 = new HashMap<>();
for(int i=0;i<nums.length;i++){
int a = nums[i];
if(map1.get(target-a)!=null){
return new int[]{i,map1.get(target-a)};
}else{
map1.put(a,i);
continue;
}
}
return null;
}
}
合集:
代码随想录算法训练营
标签:
代码随想录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端