leetcode
文章平均质量分 69
_小杰哥哥
这个作者很懒,什么都没留下…
展开
-
二分查找及其变种,c++ upper_bound,c++ lower_bound
文章目录经典二分 在[begin,end)之间查找val,返回val下标二分变种:upper_bound 在[begin,end)之间查找第一个大于val,返回val下标二分变种:lower_bound 在[begin,end)之间查找第一个大于等于val的元素,返回val下标与c++标准upper_bound, lower_bound对比 经典二分 在[begin,end)之间查找val,返回val下标 // 经典二分 在[begin,end)之间查找val,返回val下标 int* binary_se原创 2021-11-25 15:37:12 · 331 阅读 · 0 评论 -
leetcode刷题笔记数组系列(一):一文解决二分查找及其衍生题
文章目录前言一.经典二分查找:leetcode第704题定义在左闭右闭区间的二分查找该如何写:二、二分查找过程理解:leetcode第35题,当二分查找失败后...三、当有重复元素时的二分查找:leetcode第34题 前言 二分查找的前提是数组为有序数组。leetcode中和二分查找相关的代表题目有:第704,34,35,367题,本文以这几题为例进行说明。 二分查找涉及的很多的边界条件,逻辑比较简单,但就是写不好。例如到底是 while(left < right) 还是 while(left &原创 2021-08-25 16:19:31 · 214 阅读 · 0 评论 -
数组中双指针类型问题
双指针,指数组设立两个索引,以便后续的操作,并非c语言中的指针。 下路来看一下LeetCode的第273题 273题 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 题目并不难,先说说自己一开始的思路:设立...原创 2018-10-10 23:36:14 · 232 阅读 · 0 评论 -
leetcode两数之和,三数之和,四数之和
** 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] ** 第一种想法,暴力法,大多数小伙伴一开始最先想到的,不解释啦,上代码 class Solut...原创 2018-10-15 20:42:13 · 274 阅读 · 0 评论 -
leetcode第二题
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 /** * Definition for s...原创 2018-10-09 19:50:07 · 127 阅读 · 0 评论 -
leetcode 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,...原创 2018-10-09 20:59:05 · 89 阅读 · 0 评论