代码随想录|● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

//给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
//注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
只需计算s与t中每个单词出现的次数
创建26大小的数组,存放字母,然后分别在s和t中计算,s中出现的字母就在对应位置记录+1,t中出现的字母就在对应位置记录-1,最后计算是否每个位置都为0。
public boolean isAnagram(String s, String t) {
    int[] Count=new int[26];
    for(int i=0;i<s.length();i++){
        Count[s.charAt(i)-'a']++;
    }
    for(int i=0;i<t.length();i++){
        Count[t.charAt(i)-'a']--;
    }
    for(int i=0;i<Count.length;i++){
        if(Count[i]!=0)
            return false;
    }
    return true;
}
//给定两个数组 nums1 和 nums2 ,返回 它们的
//交集
// 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
先将num1加入set集合(既可以去重,也可以方便后面比较),然后遍历num2的数,如果set中有即为交集就加到re集合中最后返回
public int[] intersection(int[] nums1, int[] nums2) {
    HashSet<Integer> set=new HashSet<>();
    HashSet<Integer> re=new HashSet<>();
    for(int i:nums1){
        set.add(i);
    }
    for (int k : nums2) {
        if (set.contains(k)) {
            re.add(k);
        }
    }
    int[] result=new int[re.size()];
    int i=0;
    for(int j:re)
        result[i++]=j;
    return result;
}
//编写一个算法来判断一个数 n 是不是快乐数。
//「快乐数」 定义为:
//对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
//然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
//如果这个过程 结果为 1,那么这个数就是快乐数。
//如果 n 是 快乐数 就返回 true ;不是,则返回 false 。
//--无限循环-->重复出现数字:可以用contains方法判断是否无限循环
思路相同还是看处理的数据中是否含有某个数,用集合方法处理
public boolean isHappy(int n) {
    HashSet<Integer> Number=new HashSet<>();
    int sum=n;
    while(!Number.contains(sum)&&sum!=1){
        Number.add(sum);
        sum=getSum(sum);
    }
    return sum==1;
}
public int getSum(int n){
    int sum=0,tmp;
    while(n>0){
        tmp=n%10;
        n/=10;
        sum+=tmp*tmp;
    }
    return sum;
}
//给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。
//你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
//你可以按任意顺序返回答案。

要返回对应元素下标,比对的是元素的数值,用map方便存储。

遍历数组,然后查看target与当前数组的值的差是否在map中存储,若存储即返回当前下标和差值数据的下标;未找到就添加到map中,继续遍历数组

public int[] twoSum2(int[] nums, int target) {
    HashMap<Integer,Integer> map=new HashMap<>();
    int[] result=new int[2];
    for(int i=0;i<nums.length;i++){
        if (map.containsKey(target-nums[i])){
            result[0]=i;
            result[1]=map.get(target-nums[i]);
            return result;
        }
            map.put(nums[i],i);
    }
    return null;
}
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《代码随想录知识星球精华-大厂面试八股文v1.1.pdf》是一份介绍八股文的面试指南,针对大厂面试常见题型进行分类,以及给出相应的解答思路。这份资料具有很高的参考价值,在为即将面试的求职者提供指引的同时,也可以让读者对八股文的思维框架和策略有更好的了解。 这份资料主要包括面试题目的主题分类,如动态规划、字符串、树等,每个分类下又相应给出了典型的问题,如“最长公共子序列”、“二叉树的层次遍历”等等。对于每个问题,都给出了具体的思路指导和代码模板,许多题目给出了多种不同的解法,这些解法包括时间复杂度和空间复杂度的优化。 这份资料对于求职者来说,意义重大。在面试中,对于某些问题我们可能没有完全解决,但如果有了这份资料,我们在面试中也会有一个清晰的思考框架和即时可用的代码模板。此外,这份资料同样适用于对算法和数据结构感兴趣的开发者和工程师,对于自学和提高都有帮助。 总之,《代码随想录知识星球精华-大厂面试八股文v1.1.pdf》是一个非常实用的参考材料,它是广大求职者和程序员不可或缺的工具,值得一读。 ### 回答2: 《代码随想录知识星球精华-大厂面试八股文v1.1.pdf》是一份由知名博主“代码随想”的知识星球推出的热门资料。该资料主要介绍了大厂面试中常见的八股文,包括但不限于动态规划、双指针、贪心算法、字符串操作等。 通过学习该资料,可以系统地学习和掌握各种常见的算法和数据结构,有助于提高自己的代码能力和面试竞争力。此外,资料还给出了一些实际的面试题目例子,对于准备去大厂面试的人来说,是一份非常实用的资料。 当然,要想真正掌握这些算法和数据结构,需要自己的不断练习和实践。只有在解决实际问题的过程中,才能真正体会到这些算法和数据结构的作用和优越性。 总之,该资料对于想要深入了解算法和数据结构、提高面试竞争力的人来说是一份值得推荐的优秀资料。 ### 回答3: 代码随想录知识星球精华-大厂面试八股文v1.1.pdf是一份关于大厂面试八股文的精华资料,它收集整理了各个大厂面试中常见的八股文题目和解题思路,对于准备求职或者升职的程序员来说是一份非常有价值的资料。 该资料中涵盖了常见的算法、数据结构、操作系统、计算机网络、数据库、设计模式等知识点,每个知识点都有详尽的讲解和相应的面试题目,可以帮助面试者全面了解每个知识点的考察方向和难点。 此外,该资料还提供了八股文的解题思路和解题方法,强调了实战经验和面试技巧,对于提高面试的成功率也是非常有帮助的。 总之,代码随想录知识星球精华-大厂面试八股文v1.1.pdf是一份非常实用的面试资料,它帮助面试者深入了解各个知识点的考察方向和难点,提高了应对面试的能力和成功率,对于准备求职或者升职的程序员来说是一份不可或缺的资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值