153 寻找旋转排序数组中的最小值 假设按照升序排序的数组在预先未知的某个点上进行了旋转。例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] 。 请找出其中最小的元素。 示例 1: 12输入:nums = [3,4,5,1,2]输出:1 示例 2: 12输入:nums = [4,5,6,7,0,1,2]输出:0 示例 3: 12输入:nums = [1]输出:1 提示: 1 <= num 2021-03-31 algo leetcode 算法
115 不同的子序列 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是) 题目数据保证答案符合 32 位带符号整数范围。 示例 1: 123456789 2021-03-30 algo leetcode 算法
470 用Rand7实现Rand10 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。 不要使用系统的 Math.random() 方法。 示例 1: 12输入: 1输出: [7] 示例 2: 12输入: 2输出: [8,4] 示例 3: 12输入: 3输出: [8,1,10] 提示: rand7 已定义。 传入参数: n 表示 rand10 2021-03-27 algo leetcode 算法
实现 LFU 缓存 实现 LFU 缓存数据结构。 参考:力扣—460 LFU缓存 LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象 int get(int key) - 如果键存在于缓存中,则获取键的值,否则返回 -1。 void put(int key, int value) - 如果键已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量时,则应该在插 2021-03-26 algo 面试题
765 情侣牵手 N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手。 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。 一次交换可选择任意两人,让他们站起来交换座位。 人和座位用 0 到 2N-1 的整数表示,情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2N-2, 2N-1)。 这些情侣的初始座位 row[i] 是由最初始坐在第 i 个座位上的人决定的。 2021-03-26 algo leetcode 算法
611 有效三角形的个数 给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。 示例 1: 1234567输入: [2,2,3,4]输出: 3解释:有效的组合是: 2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3 注意: 数组长度不超过1000。 数组里整数的范围为 [0, 1000]。 Solution 参考 @ffreturn 如何可以构成三角形,其实就是最短 2021-03-26 algo leetcode 算法
912 排序数组 给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 12输入:nums = [5,2,3,1]输出:[1,2,3,5] 示例 2: 12输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5] 提示: 1 <= nums.length <= 50000 -50000 <= nums[i] <= 50000 Solution 快速排 2021-03-25 algo leetcode 算法
实现 Heap 堆 实现堆。 2021 腾讯 wxg 后台开发面试题 堆的存储堆的存储通过数组来实现, 由于其满足完全二叉树的性质. 则有**第i个节点(i从0开始算)**的 父节点: (i-1)/2 // 为负数时则说明父节点不存在 左右子节点: (i*2+1) 和 (i*2+2) 插入堆给出一个数组存储的堆, 如果加入了新元素, 必须想办法保持堆的特性: 完全二叉 和 父节点小于等于其子节点 加入 2021-03-25 algo 面试题
实现 LRU 缓存 实现 LRU 缓存数据结构。 参考:牛客 - 设计 LRU 缓存结构 、力扣 - 146 LRU 缓存机制 哈希表 + 双向链表 双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久未使用的。 哈希表即为普通的哈希映射(HashMap),通过缓存数据的键映射到其在双向链表中的位置。 123456789101112131415161718192 2021-03-25 algo 面试题
718 最长重复子数组 给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例: 123456输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出:3解释:长度最长的公共子数组是 [3, 2, 1] 。 提示: 1 <= len(A), len(B) <= 1000 0 <= A[i], B[i] < 100 Solution 参考 代码随想录 2021-03-15 algo leetcode 算法