分治算法
huangyitai
这个作者很懒,什么都没留下…
展开
-
剑指offer:面试题57 - II. 和为s的连续正数序列(前缀和+二分)
面试题57 - II. 和为s的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]解法一:前缀和+二分首先求前缀和,枚举每一个前缀和sum[i],在0~i 之间二分另外一个前缀和sum[mid],使得sum[i] - sum[mid] == target。class Solution {public:原创 2020-05-11 14:25:12 · 147 阅读 · 0 评论 -
剑指offer:面试题53 - II. 0~n-1中缺失的数字(查找左边界)
面试题53 - II. 0~n-1中缺失的数字一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:(这个样例很特别)输入: [0,1,2]输出: 3class Solution {public: int missingNumber(vector<int>& nums) { if(!n原创 2020-05-10 21:54:21 · 84 阅读 · 0 评论 -
剑指offer:面试题53 - I. 在排序数组中查找数字 I
统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 50000排序里面查找数字,首先就想到是二分,查出现次数,显然是找左边界和右边界,模板题。class Solution {public: int search(vector<int>& nums原创 2020-05-10 21:14:56 · 173 阅读 · 0 评论