当前位置: 首页 > 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;}
}

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

如有指正,十分感谢

相关文章:

  • 六级翻译技巧
  • Linux配置DockerHub镜像源配置
  • HashMap与ConcurrentHashMap详解:实现原理、源码分析与最佳实践
  • 【AI+若依框架】基础应用篇
  • C++string1号
  • 谷歌CEO皮查伊眼中的“下一代平台“与未来图景
  • 华为OD机试_2025 B卷_虚拟游戏理财(Python,100分)(附详细解题思路)
  • 【数据分析】第二章 Python基础
  • 技术博客:线程池的暗礁——Executors工厂类为何成为Java高并发系统的禁忌
  • 【数据分析】第三章 numpy(1)
  • 个人总结八股文之-基础篇(持续更新)
  • 中国城市规模指数(1992-2023)
  • 思维链提示:激发大语言模型推理能力的突破性方法
  • 20250602在荣品的PRO-RK3566开发板的Android13下打开HDMI显示
  • oracle sql 语句 优化方法
  • 为什么ping显示connect:network is unreachable,如何排查网络不通问题?
  • 神经网络基础:从单个神经元到多层网络(superior哥AI系列第3期)
  • 【Doris基础】Apache Doris中的Coordinator节点作用详解
  • web架构2------(nginx多站点配置,include配置文件,日志,basic认证,ssl认证)
  • Python发送天气预报到企业微信解决方案
  • 网站开发与设计课程设计/北京百度竞价托管
  • 做外贸需要做网站吗/百度推广一个月多少钱
  • 关于排版的网站/全球搜索引擎入口
  • 急招平面设计3名/百度seo新算法
  • 网站建设属于硬件还是软件/最大的中文搜索引擎
  • 网站备案失败/seo基础入门视频教程