Leetcode 360 Sort Transformed Array
2017-06-02 19:51
295 查看
Given a sorted array of integers nums and integer values a, b and c. Apply a function of the form f(x) = ax2 + bx + c to
each element x in the array.
The returned array must be in sorted order.
Expected time complexity: O(n)
Example:
抛物线开口朝上,max一定出现在两端,抛物线开口朝下,min一定出现在两端。
用双指针来进行排序。
public class Solution {
private int calcu(int x, int a, int b, int c){
return a*x*x + b*x + c;
}
public int[] sortTransformedArray(int[] nums, int a, int b, int c) {
int index;
if(a > 0){
index = nums.length - 1 ;
} else {
index = 0;
}
int result[] = new int[nums.length];
int i = 0;
int j = nums.length - 1;
if(a > 0){
while(i <= j){
result[index--] = calcu(nums[i],a,b,c) > calcu(nums[j],a,b,c) ? calcu(nums[i++],a,b,c):calcu(nums[j--],a,b,c);
}
}else{
while(i <= j){
result[index++] = calcu(nums[i],a,b,c) < calcu(nums[j],a,b,c) ? calcu(nums[i++],a,b,c):calcu(nums[j--],a,b,c);
}
}
return result;
}
}
each element x in the array.
The returned array must be in sorted order.
Expected time complexity: O(n)
Example:
nums = [-4, -2, 2, 4], a = 1, b = 3, c = 5, Result: [3, 9, 15, 33] nums = [-4, -2, 2, 4], a = -1, b = 3, c = 5 Result: [-23, -5, 1, 7]
抛物线开口朝上,max一定出现在两端,抛物线开口朝下,min一定出现在两端。
用双指针来进行排序。
public class Solution {
private int calcu(int x, int a, int b, int c){
return a*x*x + b*x + c;
}
public int[] sortTransformedArray(int[] nums, int a, int b, int c) {
int index;
if(a > 0){
index = nums.length - 1 ;
} else {
index = 0;
}
int result[] = new int[nums.length];
int i = 0;
int j = nums.length - 1;
if(a > 0){
while(i <= j){
result[index--] = calcu(nums[i],a,b,c) > calcu(nums[j],a,b,c) ? calcu(nums[i++],a,b,c):calcu(nums[j--],a,b,c);
}
}else{
while(i <= j){
result[index++] = calcu(nums[i],a,b,c) < calcu(nums[j],a,b,c) ? calcu(nums[i++],a,b,c):calcu(nums[j--],a,b,c);
}
}
return result;
}
}
相关文章推荐
- LeetCode 360. Sort Transformed Array
- LeetCode 360. Sort Transformed Array
- [Leetcode] 360. Sort Transformed Array 解题报告
- [LeetCode] 360. Sort Transformed Array 排序转换后的数组
- LeetCode 360. Sort Transformed Array
- LeetCode 360. Sort Transformed Array(计算函数)
- [leetcode] 360. Sort Transformed Array 解题报告
- [LeetCode] Sort Transformed Array 变换数组排序
- Leetcode: Sort Transformed Array
- Sort Transformed Array -- LeetCode
- 360. Sort Transformed Array
- 360. Sort Transformed Array
- 【leetcode】Array——Sort Color(75)
- Sort Transformed Array
- [LeetCode]--242. Valid Anagram(Count table && char array sort())
- leetcode media of an sort array
- LeetCode刷题【Array】 Sort Colors
- Sort Transformed Array
- leetcode.array--75. Sort Colors
- 【LeetCode】【Array】【75】Sort Colors