LeetCode 21

题目

 21. 合并两个有序链表

思路

合并链表和数组有相似之处,都是每次将较小值加入新链表(新数组) ,我疑惑的是不知道怎么选第一个节点,看了题解发现可以使用一个头节点来解决这个问题。

代码

class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        // 使用头节点 简化判断
        ListNode head = new ListNode();
        // 指向新链表的最后一个节点
        ListNode cur = head;
        while(list1 != null || list2 != null){
            if(list1 != null && (list2 == null || list1.val <= list2.val)){
                cur.next = list1;
                list1  = list1.next;
            }
            else{
                cur.next = list2;
                list2 = list2.next;
            }
            cur = cur.next;
        }
        return head.next;
        
    }
}

题目

128. 最长连续序列 

思路

1)最开始想的是对他进行排序,然后从第一个元素开始判断,是否是连续的。但是也不知道怎么下手写,就去看了题解;

2)题解也很简单,就是将数组进行遍历一遍保存到set中,然后基于set.contains依次进行判断某个数的下一个数是否在数组中。有个小巧思:为了避免对最长子序列子序列的重复判断,先判断每个数字的前一个数字是否在数组中,如果在的话,说明该数字并不是子序列的起点。

代码

public int longestConsecutive(int[] nums) {
        // 使用哈希表对数组中的数进行存储
        HashSet<Integer> set = new HashSet<>();
        for(int num: nums){
            set.add(num);
        }
        int maxLen = 0;
        for(int num: nums){
            // 增加一个判断 如果当前数字的前一个数字也在集合中 即当前数字并不是最长序列的起点
            if(!set.contains(num - 1)){
                int tempNum = num;
            int tempLen = 1;
            while(set.contains(tempNum+1)){
                tempNum += 1;
                tempLen += 1;
            }
            maxLen = Math.max(maxLen, tempLen);
            }
            
        }
        return maxLen;

    }

Tips

if(!set.contains(num - 1))这个真的很不错

相关推荐

  1. LeetCode 21

    2024-03-29 18:12:04       19 阅读
  2. LeetCode hot100-21

    2024-03-29 18:12:04       15 阅读
  3. Leetcode 4.21

    2024-03-29 18:12:04       11 阅读
  4. LeetCode 1084, 135, 21

    2024-03-29 18:12:04       11 阅读
  5. Leetcode Sheet】Weekly Practice 21

    2024-03-29 18:12:04       31 阅读
  6. LeetCode--26

    2024-03-29 18:12:04       35 阅读
  7. Leetcode--27

    2024-03-29 18:12:04       33 阅读
  8. leetcode 24

    2024-03-29 18:12:04       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-29 18:12:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-29 18:12:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-29 18:12:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-29 18:12:04       20 阅读

热门阅读

  1. Leetcoder Day43| 单调栈1

    2024-03-29 18:12:04       16 阅读
  2. TCP建立连接时,为什么每次的SYN都不一样

    2024-03-29 18:12:04       17 阅读
  3. Qwen1.5模型微调部署全过程

    2024-03-29 18:12:04       13 阅读
  4. 【无标题】

    2024-03-29 18:12:04       17 阅读
  5. AI大模型学习:AI大模型在特定领域的应用

    2024-03-29 18:12:04       20 阅读
  6. HDU水题刷题记录

    2024-03-29 18:12:04       21 阅读
  7. C#WPF将变量或自定义数据类绑定到控件实例

    2024-03-29 18:12:04       19 阅读
  8. vue做一个锁屏禁止页面前进后退

    2024-03-29 18:12:04       17 阅读
  9. Android JNI开发定义全局变量

    2024-03-29 18:12:04       16 阅读