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

LeetCode Hot100 (哈希)

1. 两数之和

比较简单,建立个map,看看有没有当前对应的相反的值就可以了

 class Solution {public int[] twoSum(int[] nums, int target) {TreeMap<Integer, Integer> arr=new TreeMap<Integer, Integer>();int x1=0;int x2=0;for(int i=0;i<nums.length;i++){Integer x=arr.get(target-nums[i]);if(x!=null){x1=i;x2=x;return new int[]{x,i};}arr.put(nums[i],i);}
return new int[]{x1,x2};}
}

49. 字母异位词分组

排序之后进行hash,如果存在直接放到后面,不存在,新创一个即可,最后通过stream流拿到答案

import java.util.*;
class Solution {public List<List<String>> groupAnagrams(String[] strs) {int len =strs.length;HashMap<String,List<String>> map =new HashMap<>();for(int i=0;i<len;i++){char [] chars =strs[i].toCharArray();Arrays.sort(chars);String key = Arrays.toString(chars);if(map.get(key)==null){map.put(key,new ArrayList<>());}map.get(key).add(strs[i]);}List< List <String>>ans =new ArrayList<>();ans=map.values().stream().toList();System.out.println(ans);return ans;}
}

128. 最长连续序列

建议直接排序

import java.util.*;
class Solution {public int longestConsecutive(int[] nums) {Arrays.sort(nums);int maxx=1;int sum=1;if(nums.length==0){return 0;}for(int i=1;i<nums.length;i++){if(nums[i]==nums[i-1]+1){sum++;}else if(nums[i]==nums[i-1]){continue;}else{sum=1;}maxx=Math.max(sum,maxx);}return maxx;}
}

相关文章:

  • 《量子计算实战》PDF下载
  • Java异常分类与Spring事务回滚机制深度剖析
  • NFS服务器实验
  • Linux Shell编程(五)
  • 快速部起一个Openwhisk平台,使用telego k8s服务部署能力内网部署
  • Linux性能监控工具nmon
  • 仿腾讯会议——视频发送接收
  • 【漫话机器学习系列】272.K近邻中K的大小(K-NN Neighborhood Size)
  • openCV1-2 图像的直方图相关
  • Ubuntu更新源服务器时出现:pk-client-error-quark
  • OBS VLC 不显示
  • 高速信号处理中的去加重、预加重与均衡技术
  • Eigen矩阵存储顺序以及转换
  • Scrapy爬取heima论坛所有页面内容并保存到MySQL数据库中
  • 智能IoT未来与边缘生态共建 | 2025 高通边缘智能创新应用大赛第六场公开课来袭!
  • SIL2/PLd 认证 Inxpect毫米波安全雷达:3D 扫描 + 微小运动检测守护工业安全
  • 中国核电信息技术峰会|麒麟信安锻造电力“数智基座“,护航核电安全新生态
  • Java求职面经分享:Spring Boot到微服务,从理论到实践
  • Even Split_CodeForces - 1666E分析与解答
  • 使用docker compose部署dify(大模型开发使用平台)
  • 奉节做网站/最吸引人的营销广告文案
  • 网站系统管理计划/广州网络运营课程培训班
  • 上海百度嘉定公司网页设计/乐天seo培训
  • 西宁那有做网站的/怎么做信息流广告代理商
  • 自己的公司怎么做网站/短链接
  • 电商小程序需要什么资质/南京seo域名