977.有序数组的平方
题目链接
public int [ ] sortedSquares ( int [ ] nums) {
for ( int i = 0 ; i < nums. length; i++ ) {
nums[ i] = nums[ i] * nums[ i] ;
}
Arrays . sort ( nums) ;
return nums;
}
public int [ ] sortedSquares ( int [ ] nums) {
int l = 0 ;
int r = nums. length - 1 ;
int [ ] res = new int [ nums. length] ;
int n = nums. length - 1 ;
while ( l <= r) {
if ( nums[ l] * nums[ l] > nums[ r] * nums[ r] ) {
res[ n-- ] = nums[ l] * nums[ l] ;
l++ ;
} else {
res[ n-- ] = nums[ r] * nums[ r] ;
r-- ;
}
}
return res;
}
209.长度最小的子数组
题目链接
public int minSubArrayLen ( int target, int [ ] nums) {
int left = 0 ;
int sum = 0 ;
int res = Integer . MAX_VALUE ;
for ( int right = 0 ; right < nums. length; right++ ) {
sum += nums[ right] ;
while ( sum >= target) {
res = Math . min ( res, right - left + 1 ) ;
sum = sum - nums[ left] ;
left++ ;
}
}
return res == Integer . MAX_VALUE ? 0 : res;
}
59.螺旋矩阵
题目链接
public int [ ] [ ] generateMatrix ( int n) {
int loop = 0 ;
int [ ] [ ] res = new int [ n] [ n] ;
int start = 0 ;
int count = 1 ;
int i, j;
while ( loop++ < n / 2 ) {
for ( j = start; j < n - loop; j++ ) {
res[ start] [ j] = count++ ;
}
for ( i = start; i < n - loop; i++ ) {
res[ i] [ j] = count++ ;
}
for ( ; j >= loop; j-- ) {
res[ i] [ j] = count++ ;
}
for ( ; i >= loop; i-- ) {
res[ i] [ j] = count++ ;
}
start++ ;
}
if ( n % 2 == 1 ) {
res[ start] [ start] = count;
}
return res;
}