方法参考:https://leetcode-cn.com/problems/rotate-image/solution/li-kou-48xiao-bai-du-neng-kan-dong-de-fang-fa-zhu-/
class Solution {
public:
void rotate(vector>& matrix) {
int pos1=0, pos2=matrix.size()-1;
while(pos1
思路:除自己以外乘积=自己(当前元素)的左侧乘积*自己的右侧乘积。
class Solution {
public:
vector productExceptSelf(vector& nums) {
int len=nums.size();
vector res(len,1);
int L=1;
for(int i=0; i=0; i--){
res[i]=res[i]*R;
R *= nums[i];
}
return res;
}
};
class Solution {
public:
vector> merge(vector>& intervals) {
sort(intervals.begin(), intervals.end());
vector> res;
for(int i=0; i t
j++;
}
res.push_back({intervals[i][0],t});
i=j; //跳过已经合并的区间
}
return res;
}
};
我们可以对 bits 数组从左到右扫描来判断最后一位是否为一比特字符。
当扫描到第 i 位时,如果 bits[i]=1,那么说明这是一个两比特字符,将 i 的值增加 2。如果 bits[i]=0,那么说明这是一个一比特字符,将 i 的值增加 1。
如果 i 最终落在了bits.size()−1 的位置,那么说明最后一位一定是一比特字符。
class Solution {
public:
bool isOneBitCharacter(vector& bits) {
int i=0;
while(i
class Solution {
public:
vector findDisappearedNumbers(vector& nums) {
vector res;
for(int i=0; i0){
nums[abs(nums[i])-1] *= -1;
}
}
for(int i=1; i<=nums.size(); i++){
if(nums[i-1]>0){
res.push_back(i);
}
}
return res;
}
};
思路:有一定的单调栈思想。
class Solution {
public:
int findUnsortedSubarray(vector& nums) {
int _max=INT_MIN, _min=INT_MAX;
for(int i=0; i_min){
break;
}
}
for(r=nums.size()-1; r>=0; r--){
if(nums[r]<_max){
break;
}
}
return r-l+1>0 ? r-l+1 : 0;
}
};