随笔分类 - LeetCode
摘要:题目链接 题目描述 整数数组 nums ,是否存在长度为 3 的递增子序列。(可以不紧邻) 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k , 使得 \(nums[i] < nums[j] < nums[k]\),返回 true ; 否则,返回 false 。 要求 时间复
阅读全文
摘要:题目链接 题目描述 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 没有重叠。 要求 O(n)的时间复杂度。 思路 贪心 去掉的区间尽可能少,即剩余的区间尽可能多。 按照区间的 左 端点升序,遍历区
阅读全文
摘要:题目链接 题目描述 正整数 n ,生成一个 1 到 \(n^2\) 所有元素,且按顺时针顺序螺旋排列的正方形矩阵。 思路 用**(row, col)** 表示要矩阵的坐标。 从**(0, 0)** 位置开始,依次按 右-下-左-上 的顺序插入元素 定义一个表示方向的数组 d[4][2] = {{0,
阅读全文
摘要:题目链接 题目描述 输出杨辉三角第 n 行。 下标从 0 开始。 要求 时间复杂度 O(n) n 最大为 33. 思路 \(O(n^2)\), 从第0行开始递推。 \(O(n)\), 直接计算第 n 行,利用公式, 递推计算第 n 行 第 i 个元素。 \(a[n][i] = C_{n}^{i}=C
阅读全文
摘要:题目链接 问题描述 不使用内建的哈希库设计一个哈希映射。 MyHashMap() 用空映射初始化对象。 put(key, value) 向 HashMap 插入一个键值对 (key, value)如果 key 已经存在,则更新其对应的值 value。 get(key) 返回key 所映射的 valu
阅读全文
摘要:题目链接 题目描述 给你一个只含有若干个0,1,2的数组。 使相同的数字挨在一起,并按0,1,2的顺序排列。 如:1,2,1,2,0 输出:0,1,1,2,2 要求 O(n)的时间复杂度 思路 首先想到的就是sort() 😊 ,但是没有什么排序算法能做到O(n) 不要把思维局限到排序上,这其实是一
阅读全文
摘要:题目链接 题目描述 给你 n 个整数的数组 nums,判断是否存在三个元素 a,b,c , 使得 a + b + c = 0 ? 请你找出所有和为 0 且不重复的三元组。 注意: 答案中不可以包含重复的三元组。 思路 假设不是找三个元素,而是两个元素。 首先要确定一个元素,至少要把所有元素遍历一遍,
阅读全文
摘要:题目链接 题目描述 给出n个数,找到其中的众数,保证有且仅有一个。 要求 时间复杂度:O(n), 空间复杂度:O(1) 思路 首先想到的还是哈希表,但是空间复杂度。。不可能用哈希。 核心思想:对拼消耗,就像玩卡牌游戏一样。 把相同的元素看作一个集合,这个集合就像是一个玩家的牌库。 两个不同的元素会的
阅读全文
摘要:题目链接 题目描述 给定一个非空整数数组,只有一个元素只出现一次,其余每个元素均出现两次。 找出只出现了一次的元素。 要求: O(n)的时间复杂度,不使用额外的空间。 (好久没做题了,写几道简单的找找手感😁) 思路: 因为重复的元素都是两个,首先想到是排序,然后两个两个去判断。 但是排序最快一般也
阅读全文