目录
一、寻找数组的中心索引
//本人最初的解答
class Solution {
public:
int pivotIndex(vector<int>& nums) {
int ans=0;
int len=size(nums);
for(int i=0;i<len;i++){
ans+=nums[i];
}
for(int i=0;i<len;i++){
if((ans-nums[i])%2==0){
int ret=0;
for(int j=0;j<i;j++){
ret+=nums[j];
}
if(ret*2+nums[i]==ans){
return i;
}
}
}
return -1;
}
};
class Solution {
public:
int pivotIndex(vector<int>& nums) {
int total=accumulate(nums.begin(),nums.end(),0);
//0代表返回类型
int sum=0;
for(int i=0;i<size(nums);++i){
if(sum*2==total-nums[i]){
return i;
}
sum+=nums[i];
}
return -1;
}
};
二、合并区间
vector<vector<int>> merge
(vector<vector<int>>& intervals) {
sort(intervals.begin(), intervals.end());
vector<vector<int>> ans;
for (int i = 0; i < intervals.size();) {
int t = intervals[i][1];
int j = i + 1;
while (j < intervals.size()
&& intervals[j][0] <= t) {
t = max(t, intervals[j][1]);
j++;
}
ans.push_back({ intervals[i][0], t });
i = j;
}
return ans;
}
//作者:ikaruga
//来源:力扣(LeetCode)
总结
1.vector 用法 2.accumulate 函数 3.双指针我的超人!