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

LeetCode Hot 100 哈希【Java和Golang解法】

1.两数之和

1.两数之和

在这里插入图片描述

Java解法

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> record = new HashMap<>();for(int i = 0; i < nums.length; i++) {int temp = target - nums[i];if (record.containsKey(temp)) {return new int[]{record.get(temp), i};}record.put(nums[i], i);}return new int[]{};}
}

Golang解法

func twoSum(nums []int, target int) []int {record := make(map[int]int)for i := 0; i < len(nums); i++ {temp := target - nums[i]value, ok := record[temp]if ok {return []int{value, i}}record[nums[i]] = i}return []int{}
}

2.字母异位词分组

49.字母异位词分组

在这里插入图片描述

Java解法

class Solution {public List<List<String>> groupAnagrams(String[] strs) {if (strs == null || strs.length == 0) {return new ArrayList<>();}Map<String, List<String>> record = new HashMap<>();for (String str : strs) {char[] charArray = str.toCharArray();Arrays.sort(charArray);String sortedStr = new String(charArray);if (!record.containsKey(sortedStr)) {record.put(sortedStr, new ArrayList<>());}record.get(sortedStr).add(str);}return new ArrayList<>(record.values());}
}

Golang解法

func groupAnagrams(strs []string) [][]string {record := make(map[string][]string)for _, str := range strs {charSlice := []rune(str)sort.Slice(charSlice, func(i, j int) bool {return charSlice[i] < charSlice[j]})sortedStr := string(charSlice)record[sortedStr] = append(record[sortedStr], str)}result := make([][]string, 0, len(record))for _, v := range record {result = append(result, v)}return result
}

3.最长连续序列

128.最长连续序列

在这里插入图片描述
Java解法

class Solution {public int longestConsecutive(int[] nums) {if (nums.length == 0) {return 0;}Set<Integer> record = new HashSet<>();for(int num : nums) {record.add(num);}int result = 0;for(int num : record) {if(!record.contains(num - 1)) {int currentNum = num;int length = 1;while (record.contains(currentNum + 1)) {currentNum++;length++;}result = Math.max(result, length);}}return result;}
}

Golang解法

func longestConsecutive(nums []int) int {if len(nums) == 0 {return 0}record := make(map[int]int)for _, num := range nums {record[num] = num}result := 0for num, _ := range record {if _, ok := record[num-1]; !ok {currentNum := numlength := 1_, isExist := record[currentNum+1]for isExist {currentNum++length++_, isExist = record[currentNum+1]}if result < length {result = length}}}return result
}
http://www.dtcms.com/a/265119.html

相关文章:

  • 无人机状态识别研究梳理2025.7.2
  • 欧拉角、四元数和旋转矩阵的变换关系以及无人机的坐标变换
  • 在服务器中下载 HuggingFace 模型:终极指南
  • Java的SpringAI+Deepseek大模型实战-会话记忆【三】
  • 深度学习入门day4--手写数字识别初探
  • Cloudflare大动作
  • 大语言模型:是逐字生成还是一次多词?
  • Ubuntu22.04搭建基于GPU的Yolov8环境
  • 昇腾NPU节点软件版本检查与升级方法
  • iOS 集成RN Installing glog (0.3.5)报错的解决方案
  • 深度解析Linux内核IPv4设备管理:net/ipv4/devinet.c
  • 单片机学习笔记.10.串口UART
  • Excel 如何让某些符合特定条件的数据自动变色,以作警示?
  • SSL/TLS协议信息泄露漏洞(CVE-2016-2183)、SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)修复方法
  • Tomcat10.0以上版本编译成功但报错HTTP状态 404
  • MVI+Compose架构实战
  • 解释LLM怎么预测下一个词语的
  • Go语言动态数据访问实战
  • windows安装maven环境
  • vscode vim配置
  • ElementUI el-select多选下拉框,回显数据后无法重新选择和修改
  • vue中的torefs
  • 自定义注解的使用
  • 玄机——某学校系统中挖矿病毒应急排查
  • Redis 常用五大数据类型
  • 【大模型学习 | MINIGPT-4原理】
  • MacOS 安装brew 国内源【超简洁步骤】
  • 数论基础知识和模板
  • Windows下docker安装
  • 通俗易懂的LangGraph图定义解析