目录

题目一:有效的字母异位词

题目二:两个数组的交集

题目三:快乐数

题目四: 两数之和

总结:


题目一:有效的字母异位词

力扣题目链接

题目描述:

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。

思路分析:哈希表解题,视频指路

class Solution {public boolean isAnagram(String s, String t) {int[] record = new int[26]; // 定义一个数组存放数值for (char c : s.toCharArray()) {record[c - 'a']++; // 减去'a'对应的ASCLL值,使之对应record的下标}for (char c : t.toCharArray()) {record[c - 'a']--;}for (int count : record) { // 遍历数组if (count != 0) {return false;}}return true;}
}

题目二:两个数组的交集

力扣题目链接

题目描述:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

思路分析:哈希表解题,视频指路

class Solution {public int[] intersection(int[] nums1, int[] nums2) {if (nums1 == null || nums1.length == 0 || nums2 == null || nums2.length == 0) {return new int[0];}Set<Integer> set1 = new HashSet<>();Set<Integer> set2 = new HashSet<>();// 遍历数组,并去除重复元素for (int i : nums1) {set1.add(i);}// 遍历数组,寻找和set1中相同的元素,并返回给set2   for (int j : nums2) {if (set1.contains(j)) {set2.add(j);}}// 定义一个和set2长度相同的数组int[] result = new int[set2.size()];int index = 0;// 遍历set2,将结果返回给result数组for (int i : set2) {result[index++] = i;}return result;}
}

 题目三:快乐数

力扣题目链接

题目描述:

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」 定义为:

对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
如果这个过程 结果为 1,那么这个数就是快乐数。
如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

思路分析 :使用哈希表检测是否有环,官方题解

class Solution {public boolean isHappy(int n) {// 创建一个 HashSet 地数据结构,进行没有顺序,不重复元素的存储Set<Integer> set = new HashSet<>();// 向着集合中添加元素,判断是不是形成了闭环,也就是不可能成为快乐数while (n != 1 && !set.contains(n)) {set.add(n);n = getNextNum(n);}return n == 1; // 跳出循环时,n=1,返回ture,否则返回false}/**根据当前的数字,获取到下面的数字是多少,下面的数字是根据当前的数字分别取到每一位(也就是个十百千万位等等,经过了平方和的计算)*/public int getNextNum(int n) {int res = 0;while (n > 0) {int temp = 0;temp = n % 10;n = n / 10;res += temp * temp;}return res;}}

题目四: 两数之和

力扣题目链接

题目描述:

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

思路分析:哈希表解题,忍者算法-两数之和

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {int requiedNum = target - nums[i]; // 找出对应的数值if (map.containsKey(requiedNum)) {int firstIndex = map.get(requiedNum); // 返回对应数值的下标int lastIndex = i; // 返回当前数值的下标return new int[]{firstIndex, lastIndex};} else { // 未找到配对的数值时,将数据存入map中map.put(nums[i], i);}}return new int[]{};}
}

 总结:

        四道题都可以用hash解决,所以遇到类似需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。最后附上carl哥的 哈希表理论基础 。

代码随想录训练营day6相关推荐

  1. 【代码随想录训练营】Day43-动态规划

    代码随想录训练营 Day43 今日任务 1049.最后一块石头的重量Ⅱ 494.目标和 474.一和零 语言:Java 1049. 最后一块石头的重量Ⅱ 链接:https://leetcode.cn/ ...

  2. 代码随想录训练营day8

    目录 题目一:反转字符串 解法一:数值交换 解法二:位运算 题目二:反转字符串|| 题目三:替换空格 解法一:双指针 解法二:使用额外空间 题目四:翻转字符串里的单词 解法一: 解法二:纯属娱乐 题目 ...

  3. 【代码随想录训练营】【Day14】第六章|二叉树|理论基础|递归遍历|迭代遍历|统一迭代

    理论基础 二叉树的定义形式有:节点指针和数组 在数组中,父节点的下标为i,那么其左孩子的下标即i*2+1,右孩子的下标即为i*2+2 二叉树的常见遍历形式有:前序遍历.后序遍历.中序遍历和层序遍历 前 ...

  4. 代码随想录训练营day56

    题目一:两个字符串的删除操作 力扣题目链接 题目描述: 给定两个单词 word1 和 word2 ,返回使得 word1 和  word2 相同所需的最小步数. 每步 可以删除任意一个字符串中的一个字 ...

  5. 代码随想录训练营day57

    题目一:回文子串 力扣题目链接 题目描述: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目. 回文字符串 是正着读和倒过来读一样的字符串. 子字符串 是字符串中的由连续字符组成的一 ...

  6. 代码随想录训练营day53

    题目一:最长公共子序列 力扣题目链接 题目描述: 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度.如果不存在 公共子序列 ,返回 0 . 一个字符串的 子序列  ...

  7. 代码随想录训练营day55

    题目一:判断子序列 力扣题目链接 题目描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符 ...

  8. 代码随想录训练营day52

    题目一:最长上升子序列 力扣题目链接 题目描述: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度. 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序. ...

  9. 代码随想录训练营day48

    题目一:打家劫舍 力扣题目链接 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上 ...

最新文章

  1. C++ 笔记(17)— 类和对象(构造函数、析构函数、拷贝构造函数)
  2. Xilinx ISE 开发过程中生成的各种文件(一)
  3. Vuejs自定义全局组件--loading
  4. 【极值问题】【CF1063B】 Labyrinth
  5. ADSL参数BITSWAP作用
  6. php能不能动态显示html5,php – 是否可以动态生成html5缓存清单?
  7. 微软中国推校园先锋计划,保障学生低价获取正版软件
  8. 使用百度云加速防apache的ab测试
  9. python登录验证程序_Python模拟用户登录验证
  10. 微信红包发放接口服务器签名失败,微信现金红包接口开发注意的事项
  11. 在Carmaker中建立自己的交通环境
  12. 大学计算机计算题乘法,分数乘法计算题100道
  13. HiveHive创建数据库与创建数据库表
  14. magento 货币换算
  15. 新晋院士,任大学校长!
  16. 达梦数据库LENGTH_IN_CHAR(对象的长度是否以字符为单位)总结
  17. B-样条基函数:重要性质
  18. leetcode 16 -- 3Sum Closest
  19. IT公司、软件公司资质(转)
  20. 抛物线断面临界水深莫洛图

热门文章

  1. c语言程序设计(西安理工大学),C语言程序设计-西安理工大学三电实验教学中心!.doc...
  2. 高效利用团购,方便隔离生活
  3. pythoc_autocad_标注_all_横线_竖线
  4. 百度出来的 KAP架构师
  5. eclipse软件无法打开的原因
  6. 编程实现操作word文档 c#
  7. 自动矢量化编译优化技术(Automatic Vectorization)
  8. 在LINUX如何用键盘复制,粘贴
  9. linux移动文件夹
  10. 汽油的90#、93#、97#有什么区别的?