随笔分类 - 算法与数据结构
摘要:1.常见操作 1.1 检测数n的第k位是否为1 n & (1 << (k - 1)) 1.2 将n的第k位置为1 n | (1 << (k - 1)) 1.3 将n的第k位清零 n & ~(1 << (k - 1)) 1.4 判断两个整数是否异号 x ^ y < 0 异号 否则同号 1.5 交换两个
阅读全文
摘要:public class MergeTwoList { public class ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; } ListNode(int val, Lis
阅读全文
摘要:跳表 基于链表改造,增加多层索引链表,使得查找结点的平均时间复杂度为O(logn),但是增加了空间复杂度,采用双向链表,每层首尾各有一个空结点,左侧为负无穷大,右侧为正无穷大 查找 从最上层索引开始查找,找到该层中仅小于目标结点的前置索引节点,然后找下一层,一直到找到为止 插入 先找到待插入结点的前
阅读全文
摘要:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 方法一:使用栈 public class ListNode { int val
阅读全文
摘要:找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制:
阅读全文
摘要:给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 说明: 输出结果中每个元素出现的次
阅读全文
摘要:题目描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包
阅读全文

浙公网安备 33010602011771号