二分法
二分法
梅杏柿
这个作者很懒,什么都没留下…
展开
-
Leetcode第1011题 在 D 天内送达包裹的能力C++解法
主要在两个地方,第一是low和high的值,low应该为数组元素最大值(如果low小于数组最大值,那么将由元素无法装车),high为数组和(D最少为1的时候)。再有辅助函数要写好,两种思路,一种是累加一种是累减。累加可以看当重量为m时,需要几天才能运完。累减可以看重量为m,D天内是否能运完class Solution {public: int shipWithinDays(vector<int>& weights, int D) { int low=0,hi原创 2021-02-21 00:01:41 · 146 阅读 · 0 评论 -
Leetcode第875题 爱吃香蕉的珂珂 C++解法
写出来我还觉得不太可能,毕竟要遍历求和的?但是还真就是这样class Solution {public: int minEatingSpeed(vector<int>& piles, int H) { int size=piles.size(); sort(piles.begin(),piles.end()); if(size==H) return piles[size-1]; int low=1原创 2021-02-20 20:06:43 · 190 阅读 · 0 评论 -
Leetcode第222题 完全二叉树的节点个数 C++解法
前序遍历。但是这道题是要在O(N)以下,所以这种传统方法肯定是不行的class Solution {public: int countNodes(TreeNode* root) { if(!root) return 0; return 1+countNodes(root->left)+countNodes(root->right); }};...原创 2021-02-04 18:45:36 · 60 阅读 · 0 评论 -
Leetcode第69题 x 的平方根 C++(未完善)
令人头疼的二分法,还是无法信手拈来看看我第一次的错误示范class Solution {public: int mySqrt(int x) { int low=0,high=x,medium; int temp,result; while(low<=high) { medium=(low+high)/2; temp=medium*medium; if(t原创 2021-01-05 09:59:35 · 88 阅读 · 0 评论 -
Leetcode第35题 搜索插入位置 C++解法
标准二分搜索,掌握的还不好,还有细节要敲定class Solution {public: int searchInsert(vector<int>& nums, int target) { if(nums[0]>target) return 0; if(nums[nums.size()-1]<target) return nums.size(); int n_up=nums.size(原创 2021-01-02 21:25:05 · 94 阅读 · 0 评论