自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Leetcode 167 两数之和 (暴力循环/哈希表)

这道题和LeetCode 001差不多,虽然是中等难度,但是没有什么本质变化。

2022-09-14 22:07:37 457

原创 Leetcode 1 两数之和 (暴力循环/哈希表)

看见问题很容易想到用最简单的两层for循环实现,最后也确实可以用这种方式实现,但是时间消耗的比较多。两数相加这种有明确对应关系的可以想到用哈希表。问题需要我们返回的是两个数的索引下标,所以我们把key设为数组里的值,value设置为数组下标,这样方便我们到时候取出value。所以我们put代码为 hashMap.put(nums[i],i), 我们还会用到 HashMap.containsKey() 方法判断是否已经存入了主键为target-nums[i]的元素。

2022-09-14 21:55:43 284

原创 LeetCode 35 搜索插入位置(二分查找)

题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4解题思路:二分查找算法为o(logn).

2022-04-01 12:15:16 1057

原创 Leetcode 278 第一个错误的版本(二分查找)

题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例 1:输.

2022-04-01 11:40:21 132

原创 Leetcode 374 猜数字大小(二分查找)

题目:猜数字游戏的规则如下:每轮游戏,我都会从1到n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1或 0):-1:我选出的数字比你猜的数字小 pick < num1:我选出的数字比你猜的数字大 pick > num0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick ...

2022-04-01 10:56:41 102

原创 Leetcode 704 二分查找(二分查找)

题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示:你可..

2022-03-31 22:18:27 96

原创 Leetcode 183 从不订购的客户(SQL)

题目:某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。Customers 表:+----+-------+| Id | Name |+----+-------+| 1 | Joe || 2 | Henry || 3 | Sam || 4 | Max |+----+-------+Orders 表:+----+------------+| Id | CustomerId |+----...

2022-03-31 14:21:56 1106

原创 Leetcode 584 寻找用户推荐人(SQL)

题目:给定表customer,里面保存了所有客户信息和他们的推荐人。+------+------+-----------+| id | name | referee_id|+------+------+-----------+| 1 | Will | NULL || 2 | Jane | NULL || 3 | Alex | 2 || 4 | Bill | NULL || 5 | Zack | ...

2022-03-31 09:19:15 909

原创 Leetcode 605 种花问题 (贪心)

题目:解题思路:看过题目可以看出来这道题很适合贪心的解法,每一块地都尽可能种上花,则对于全局就是最优解。这道题需要考虑的主要是程序能不能处理一些特殊情况,比如把花种在两端和中间是不一样的,只需要考虑一边。比如题目问的是能不能种下n朵花,则我们只需要比较能不能容纳下n朵花,不需要纠结是不是恰好能种下n朵,还有对于只有一块地的处理等等。代码实现: 这是最初的代码,将所有条件都一一列举出来,很杂乱而且不方便查看。class Sol...

2022-01-04 17:32:55 267

原创 Leetcode 435 无重叠区间 (贪心)

题目:解题思路:采用贪心的解题思想,可以想出我们需要对区间进行排序。 我们选择从左向右,对右端点进行升序的排序。可以发现区间的左端点大于等于上一个没有重叠的区间的右端点(默认是第一个,即我们排序好右端点最小的区间的端点) 时,这时区间没有重叠。例如2,3的左端点没有大于等于1的右端点,此时和1有重叠,而4的左端点大于1的右端点,4就是下一个没有重叠的区间。我们可以把每一次这种没重叠的区间的右端点记录为right,记录出有多少个这种未重叠...

2022-01-04 12:54:58 653

原创 Leetcode 135 分发糖果(贪心)

题目:解题思路:这一次的贪心策略是在每一次的遍历中,只考虑当前一侧的比较,从而使得全局都是最优的。先从左向右比较,对右边评分更高的孩子给他左边孩子+1个糖果,这样完成左遍历。但是这样会有一些问题,如果右边是评分递减的几个孩子,左遍历就达不到想要的效果。如图所示:我们可以从右向左再来一次比较,对左边评分高于右边,但糖果数量却不大于右边的孩子,对他的糖果数量+1,反应在上图就是对评分为4,2的两个孩子糖果数量做出改变,最终结果如下图:实...

2022-01-03 13:37:15 165

原创 Leetcode 455 分发饼干(贪心)

贪心算法是满足每一次操作都是局部最优的,从而满足全局最优。先对孩子的饥饿度以及饼干的大小排序,遍历孩子饥饿度数组,每一次选择出能让孩子吃饱的最小尺寸饼干。

2022-01-02 21:32:31 491

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除