可以直接使用C++当时自带的排序算法库函数进行计算,属于暴力解法,复杂度较高,那么有没有运行效率更高的算法思想呢?
class Solution {
public:
vector sortedSquares(vector& nums) {
for(int i=0;i
class Solution {
public:
vector sortedSquares(vector& nums) {
int k=nums.size()-1;
int i,j;
vector result(nums.size(),0);
for(i=0,j=nums.size()-1;i<=j;){
if(nums[i]*nums[i]
暴力解法确实可以进行运算,但是当测试的数组很多数字的时候,就超时了
class Solution {
public:
int minSubArrayLen(int target, vector& nums) {
int result=INT32_MAX;
int sum=0;
int length=0;
for(int i=0;i=target){
length=j-i+1;
result=result
在这里要格外注意为什么使用while(sum>target)而不是if(sum>target)来判断
class Solution {
public:
int minSubArrayLen(int target, vector& nums) {
int result=INT32_MAX;
int sum=0;
int i=0;
int j=0;
int length=0;//子数组的长度
for(j=0;j=target){
length=j-i+1;
result=result
在这里主要是我们要提前规定好怎么查询,有规律得查询才能不会发生错误的查询和排序
class Solution {
public:
vector> generateMatrix(int n) {
vector> res(n, vector(n, 0));
int startx=0;
int starty=0;
int count=1;
int offset=1;
int loop=n/2;
int mid=n/2;
int i=0,j=0;
while(loop--){
i=startx;
j=starty;
for(j=starty;jstartx;j--){
res[i][j]=count++;
}
for(;i>startx;i--){
res[i][j]=count++;
}
startx++;
starty++;
offset++;
}
if(n%2!=0){
res[mid][mid]=count;
}
return res;
}
};