0


【LeetCode】热题100 刷题笔记

文章目录

T1 两数之和

链接:1. 两数之和
题目:
在这里插入图片描述

刷题感悟】这道题用两层for循环也能做出来,但我们还是要挑战一下时间复杂度小于

     O 
    
   
     ( 
    
    
    
      n 
     
    
      2 
     
    
   
     ) 
    
   
  
    O(n^2) 
   
  
O(n2)的解法,不能因为它是第一道 而且还是简单题就不做,题目还是常做常新的,从中挖掘新的学习点也是一个一件很有价值的事情。

代码:

publicint[]twoSum(int[] nums,int target){Map<Integer,Integer> indexValueMap =newHashMap<>();for(int ii =0; ii < nums.length; ii++){// 把数值作为key,下标作为value好一点,因为value比key方便获取而且题目最终是希望我们返回数组下标if(indexValueMap.containsKey(target - nums[ii])){// 初始化数组的方法returnnewint[]{ii, indexValueMap.get(target - nums[ii])};}
            indexValueMap.put(nums[ii], ii);}// 返回一个空数组returnnewint[]{};}

T49 字母异位词分组

链接:49. 字母异位词分组
题目:
在这里插入图片描述
代码:

publicList<List<String>>groupAnagrams(String[] strs){// 1. Map<String, String> -> Map<单词字典序, 单词>// 博客:将一个字符串转成字典序排列的字符串(有点想复杂了)// Step1: 收集异位词Map<String,List<String>> map =newHashMap<>();for(String str : strs){String sortedString =getSortedString(str);if(map.containsKey(sortedString)){List<String> wordList = map.get(sortedString);
                wordList.add(str);
                map.put(sortedString, wordList);continue;}// 初始化数组的方法
            map.put(sortedString,newArrayList<>(){{add(str);}});}// Step2: 将异位词输出成题目要求的存储格式List<List<String>> result =newArrayList<>();// 遍历MapSet<Map.Entry<String,List<String>>> wordEntrySet = map.entrySet();
        wordEntrySet.forEach(entrySet -> result.add(entrySet.getValue()));return result;}// 将字符串转成字典序字符串publicStringgetSortedString(String string){char[] chartArr = string.toCharArray();Arrays.sort(chartArr);// 按字典序排列returnString.valueOf(chartArr);// char数组转成字符串}

常用小技巧

初始化数组的方法

newint[]{1,2};

初始化List的方法

newArrayList<>(){{// 两层括号add(str);}};

将字符串转换成它的字典序字符串

char[] chartArr = string.toCharArray();// 先把字符串转成char数组Arrays.sort(chartArr);// 按字典序排列returnString.valueOf(chartArr);// char数组转成字符串

遍历map

// 1. 先把map的entrySet赋值给一个SetSet<Map.Entry<String,List<String>>> wordEntrySet = map.entrySet();// 2. 再用Lambda表达式遍历set
wordEntrySet.forEach(entrySet -> result.add(entrySet.getValue()));
标签: leetcode 笔记 算法

本文转载自: https://blog.csdn.net/weixin_44779122/article/details/137216558
版权归原作者 小芒果dd 所有, 如有侵权,请联系我们删除。

“【LeetCode】热题100 刷题笔记”的评论:

还没有评论