当前位置: 首页> 健康> 科研 > 44.哀家要长脑子了!

44.哀家要长脑子了!

时间:2025/8/4 23:00:17来源:https://blog.csdn.net/m0_73072282/article/details/142334935 浏览次数:0次
1.300. 最长递增子序列 - 力扣(LeetCode)

 

class Solution {
public:int lengthOfLIS(vector<int>& nums) {int n = nums.size();if(n == 0) return 0;vector<int> dp(n, 1);for(int i = 0; i < n; i++)for(int j = 0; j < i; j++)if(nums[j] < nums[i])dp[i] = max(dp[i], dp[j]+1);return *max_element(dp.begin(), dp.end());        }
};

对于数组中的每一个元素,可以假设它至少构成长度为1 的递增子序列(即自身)。当nums[j]大于nums[i]的时候,可以将nums[j] 加入到以nums[i] 为结尾的递增子序列中。

2.34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)

class Solution {
public:int binsearch(vector<int> nums, int target) {int l = 0, r = nums.size() - 1;while(l <= r) {int mid = l + (r-l)/2;if(nums[mid] < target) l = mid + 1;else r = mid - 1;}return l;}vector<int> searchRange(vector<int>& nums, int target) {int st = binsearch(nums, target);if(st == nums.size() || nums[st] != target) return {-1, -1};int en = binsearch(nums, target+1) - 1;return {st, en};}
};

 二分 一看就是二分。

3.744. 寻找比目标字母大的最小字母 - 力扣(LeetCode)

 

class Solution {
public:int binsearch(vector<char> nums, char target) {int left = 0, right = nums.size() - 1;while(left <= right) {int mid = left + (right - left) / 2;if(nums[mid] <= target) left = mid + 1;else right = mid - 1;}return left;}char nextGreatestLetter(vector<char>& letters, char target) {int res = binsearch(letters, target);if(res == letters.size() || letters[res] < target)return letters[0];return letters[res];}
};

注意,binsearch函数中是nums[mid] <= target

4.2529. 正整数和负整数的最大计数 - 力扣(LeetCode)

class Solution {
public:int binsearch(vector<int> &nums, int target) {int left = 0, right = nums.size() - 1;while(left <= right) {int mid = left + (right-left) / 2;if(nums[mid] >= target) right = mid - 1;else left = mid + 1;}return left;}int maximumCount(vector<int>& nums) {int neg = binsearch(nums, 0);int pos = (int)nums.size() - binsearch(nums, 1);return pos > neg ? pos : neg;        }
};

不包括0,就从1开始找就好了啊

关键字:44.哀家要长脑子了!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: