问题描述:
解答:
class Solution {
public int[] sortedSquares(int[] nums) {
int len=nums.length,fs=-1;
int []ans = new int[len];
for(int i = 0;i<len;i++){
if(nums[i]<0){
fs=i;
}else{
break;
}
}
int f=fs,z=fs+1,index=0;
while(f>=0||z<len){
if(z==len){
ans[index]=nums[f]*nums[f];
f--;
}else if(f<0){
ans[index]=nums[z]*nums[z];
z++;
}else if(nums[f]*nums[f]>nums[z]*nums[z]){
ans[index]=nums[z]*nums[z];
z++;
}else{
ans[index]=nums[f]*nums[f];
f--;
}
index++;
}
return ans;
}
}
思路:
问题描述:
解答 :
class Solution {
public void rotate(int[] nums, int k) {
int n = nums.length;
k%=n;
int []arr = new int[n];
reverse(nums,0,n-1);
reverse(nums,0,k-1);
reverse(nums,k,n-1);
}
public void reverse(int []ns,int low,int high){
for(;low<high;low++,high--){
int temp=ns[low];
ns[low]=ns[high];
ns[high]=temp;
}
}
}
思路: