当前位置: 首页 > news >正文

代码随想录算法训练营第六天| 242.有效的字母异位词 、 349. 两个数组的交集 、 202. 快乐数 、1. 两数之和

242.有效的字母异位词 

思路:设立一个数组(int(26)),每个位置存放26个英文字母的数量,然后遍历统计第一个字符串中的字母出现的数量,遍历第二个字符串时,让对应的字母位置的数字-1,最后看是否数组中的数字都为0。

class Solution {public boolean isAnagram(String s, String t) {int[] res = new int[26];for(int i = 0;i < s.length(); i++){res[s.charAt(i) - 'a']++;}for(int i = 0;i < t.length(); i++){res[t.charAt(i) - 'a']--;}for(int i = 0; i<26;i++){if(res[i] != 0) return false;}return true;}
}

349. 两个数组的交集 

初始思路:和上一题一样;

随想录思路:如果存储元素的值没有范围,可以使用set。

class Solution {public int[] intersection(int[] nums1, int[] nums2) {if(nums1 == null || nums2 == null || nums1.length == 0 || nums2.length == 0) return new int[0];Set<Integer> set1 = new HashSet<>(); Set<Integer> set2 = new HashSet<>();for(int i : nums1){set1.add(i);}for(int i : nums2){if(set1.contains(i))set2.add(i);}return set2.stream().mapToInt(Integer::intValue).toArray();}
}

202. 快乐数 

初始思路:没想到解决思路

随想录思路:首先,只有值重复出现时才会无限循环下去。所以需要判断值是否重复,判断值是否重复就要用到哈希。

class Solution {public boolean isHappy(int n) {Set<Integer> set = new HashSet<>();while(true){int sum = 0;while(n != 0){int temp = n%10;sum += (temp*temp);n /= 10;} if(sum == 1) return true;if(set.contains(sum)) return false;else set.add(sum);n = sum;}}
}

1. 两数之和

初始思路:暴力遍历数组。

                或者,先把数组转为hashset,然后让目标值减去每一个数,若差值大于0,则判断hashset中有没有这个差值。(找下标代价太大)

随想录思路:使用了hashmap,因为我们需要得到下标,还需要判断对应的值是否存在。

class Solution {public int[] twoSum(int[] nums, int target) {int[] res = new int[2];if(nums == null || nums.length == 0) return res;Map<Integer,Integer> map = new HashMap<>();for(int i = 0;i < nums.length;i++){int temp = target - nums[i];if(map.containsKey(temp)){res[1] = i;res[0] = map.get(temp);break;}map.put(nums[i], i);}return res;}
}

鉴于作者水平有限,文章可能存在错误

如有指正,十分感谢

http://www.xdnf.cn/news/773947.html

相关文章:

  • Cesium使用primitive添加点线面(贴地)
  • 【文献阅读】Learning Transferable Visual Models From Natural Language Supervision
  • 【网络信息安全体系结构】知识点总结
  • 每日算法-250602
  • 复变函数 $w = z^2$ 的映射图像演示
  • 电商 API 开发实战:唯品会商品详情页实时数据接口接入与调试
  • 【Python 进阶2】抽象方法和实例调用方法
  • 激光雷达的强度像和距离像误差与噪声分析(2)2025.6.2
  • ps反相调整
  • 西红柿番茄成熟度目标检测数据集介绍
  • RSCUcaller
  • C语言进阶知识:深入探索编程的奥秘
  • 免费的硬盘工具
  • c++ 赋值函数和拷贝构造函数的调用时机
  • 【Pytorch学习笔记】模型模块06——hook函数
  • ps色彩平衡调整
  • java反序列化: Transformer链技术剖析
  • DAX权威指南6:DAX 高级概念(扩展表)、DAX 计算常见优化
  • 集成测试的流程总结
  • 【Kubernetes-1.30】--containerd部署
  • 工作日记之权限校验-token的实战案例
  • 基于Android的医院陪诊预约系统
  • 九(2).参数类型为引用结构体类型
  • css呼吸灯
  • 详细解析2MHz和3MHz压电陶瓷片的区别
  • 数据库-数据查询
  • 数学建模期末速成 多目标规划
  • 设计模式——迭代器设计模式(行为型)
  • ToolsSet之:数值提取及批处理
  • Spring Cloud 开发入门:环境搭建与微服务项目实战(上)