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

网站内容管理株洲做网站

网站内容管理,株洲做网站,移动宽带,邢台建手机网站流程文章目录 1. 两数之和49. 字母异位词分组128. 最长连续序列总结 1. 两数之和 leetcode:https://leetcode.cn/problems/two-sum/description/?envTypestudy-plan-v2&envIdtop-100-liked暴力解决: public int[] twoSum(int[] nums, int target) {for …

文章目录

  • 1. 两数之和
  • 49. 字母异位词分组
  • 128. 最长连续序列
  • 总结


1. 两数之和

在这里插入图片描述

  1. leetcode:https://leetcode.cn/problems/two-sum/description/?envType=study-plan-v2&envId=top-100-liked
  2. 暴力解决:
    public int[] twoSum(int[] nums, int target) {for (int i = 0; i < nums.length; i++) {for (int j = 0; j < nums.length; j++) {if (j == i) {continue;}if (nums[j] == target - nums[i]) {return new int[]{i, j};}}}return new int[]{};}
  1. 哈希解决:
   public int[] twoSum(int[] nums, int target) {// <Value, Index>Map<Integer, Integer> map = new HashMap<>();for (int i = 0;i < nums.length; i++) {int complete = target - nums[i];if (map.containsKey(complete)) {return new int[]{map.get(complete), i};}map.put(nums[i], i);}return new int[]{};}

49. 字母异位词分组

在这里插入图片描述

  1. leetcode:https://leetcode.cn/problems/group-anagrams/description/?envType=study-plan-v2&envId=top-100-liked
  2. 使用排序法:

思路:
(1). 对每个字符串进行排序。
(2). 使用排序后的字符串作为哈希表的键,将相同的字母异位词放在同一组中。

    public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<>();for (String str : strs) {char[] chars = str.toCharArray();Arrays.sort(chars);String key = new String(chars);if (!map.containsKey(key)){map.put(key, new ArrayList<>());}map.get(key).add(str);}return new ArrayList<>(map.values());}
  1. 使用字符计数法

思路:
(1). 对于每个字符串,统计其字符出现的频次,使用一个数组或哈希表表示这个频次。
(2). 将频次数组或频次哈希表作为哈希表的键,将字母异位词加入同一组。

    public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<>();for (String str : strs) {int[] counts = new int[26];for (char c : str.toCharArray()) {counts[c - 'a']++;}String key = Arrays.toString(counts);if (!map.containsKey(key)) {map.put(key, new ArrayList<>());}map.get(key).add(str);}return new ArrayList<>(map.values());}

128. 最长连续序列

在这里插入图片描述

  1. leetcode:https://leetcode.cn/problems/longest-consecutive-sequence/description/?envType=study-plan-v2&envId=top-100-liked

  2. 解法:
    通过判断一个数字是否是序列的起点来高效检查最长连续序列。

    public int longestConsecutive(int[] nums) {if (nums == null || nums.length == 0) {return 0;}// 将所有数字加入哈希集合HashSet<Integer> set = new HashSet<>();for (int num : nums) {set.add(num);}int max = 0;// 遍历集合for (int num : set) {// 仅从序列的起点开始扩展if (!set.contains(num - 1)) {int currentNum = num;int currentStreak = 1;// 向后扩展序列while (set.contains(currentNum + 1)) {currentNum++;currentStreak++;}// 更新最大长度max = Math.max(max, currentStreak);}}return max;}

总结

在算法题中,使用哈希表(HashMap)是一种非常高效的工具,特别适用于解决需要快速查找、配对、或分组的问题。

  1. 快速查找:
  • 需要在数组或集合中快速查找某个元素是否存在。
  • 示例:两数之和
  1. 分组:
  • 根据某种规则,将元素分为若干组,键是规则标识,值是元素列表。
  • 示例:字母异位词分组
  1. 记录频率或状态:
  • 统计元素出现的频率,或跟踪元素是否被访问。
  1. 配对与索引存储:
  • 存储某个值对应的另一部分信息,比如索引或其余条件。

解题步骤:

  • 明确题意:
    • 确定是否需要频繁查找或分组操作。
  • 确定哈希表结构:
    • Key:作为分组或查找的标识(例如目标值的差值、排序后的字符串)。
    • Value:存储关联的值(例如索引、元素列表等)。
  • 遍历与处理:
    • 遍历数组,根据逻辑将元素存入或从哈希表中取出。
  • 返回结果:
    • 按题目要求返回处理后的结果。

http://www.ds6.com.cn/news/31661.html

相关文章:

  • 怎么做网站底部版权信息排名第一的手机清理软件
  • 龙华做网站 熊掌号主流搜索引擎有哪些
  • wordpress cart插件seo整合营销
  • 比较有趣的网站谷歌关键词热度查询
  • 网站做外链推广的常用方法怎么样引流顾客到店方法
  • 做系统软件的网站网站优化工具
  • 池州网站建设jidela引流推广接单
  • 山西建设工程网菏泽seo
  • 做网站的资源哪里找小红书关键词热度查询
  • 学校网站做网页飘窗怎么做南京seo培训
  • dedecms建设慕课网站网店运营入门基础知识
  • 阿里云空间可以做网站吗国内企业网站模板
  • 厦门做网站的公司微商营销技巧
  • 深圳电商平台网站建设域名解析
  • 天空彩票网站怎么做培训机构管理系统哪个好
  • 郑州seo优化公司排名网站是否含有seo收录功能
  • 网站开发 维护岗位职责网站注册免费
  • 深圳门户网站建设免费的网站软件下载
  • 网站建设分析书引言免费自助建站哪个最好
  • 大前端网站最新seo操作
  • 长沙毕业设计代做网站价格百度seo在哪里
  • 西宁网站建设索王道下拉优秀网站设计
  • 二手书网站的建设规模四川企业seo推广
  • 做网站代理需要办什么营业执照软文新闻发布平台
  • 怎样查网站谁做的百度广告联盟怎么赚钱
  • 商丘做建设网站的公司开发网站的流程
  • 南京网站制作电话品牌推广活动有哪些
  • 静态单页网站wordpress免费b站推广入口2023
  • 如何用axure做网站下载百度软件
  • 免费学编程网站如何去做网络营销