LeetCode 360. Sort Transformed Array
来源:互联网 发布:图片自动播放软件 编辑:程序博客网 时间:2024/06/03 21:12
Given a sorted array of integers nums and integer values a, b and c. Apply a function of the form
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]
思路:
1. 这是一个数学题。计算所有x和对称轴的距离
2. 在实际计算中,不用计算
3. 如何做到o(n)的复杂度?必须利用输入是sorted array这个条件。先计算所有距离,并根据a符号决定是找出最大值还是最小值的坐标,例如,a>0,则找出距离最小值的坐标,然后把这个值坐标对应的
4. 还可以继续简化,参考http://www.cnblogs.com/grandyang/p/5595614.html 不用计算并比较距离。可以只利用下面的性质,a>0则抛物线两边比中间大;a>0则抛物线中间比两边大;a=0则根据b来判断是单调递增还是递减。
vector<int> sortTransformedArray(vector<int>& nums, int a, int b, int c) { int n=nums.size(); vector<int> res(n,0); for(int i=0;i<n;i++) nums[i]=a*x*x+b*x+c; int left=0,right=n-1; int index=a>=0?n-1:0; while(left<=right){ if(a>=0){ res[index--]=(nums[left]>=nums[right])?nums[left++]:nums[right--]; }else{ res[index++]=(nums[left]>=nums[right])?nums[right--]:nums[left++]; } } return res;}
- LeetCode 360. Sort Transformed Array
- LeetCode 360. Sort Transformed Array
- [leetcode] 360. Sort Transformed Array 解题报告
- [Leetcode] 360. Sort Transformed Array 解题报告
- 360. Sort Transformed Array
- Leetcode 360 Sort Transformed Array
- LeetCode 360. Sort Transformed Array(计算函数)
- Sort Transformed Array
- leetcode.array--75. Sort Colors
- Array#sort
- Array Sort
- array.sort()
- Array.sort()
- Array.Sort
- 【leetcode】Array——Sort Color(75)
- [LeetCode]--242. Valid Anagram(Count table && char array sort())
- Array.Sort方法
- java.util.array.sort
- LAMP 搭建linux+apache+mysql+php7環境
- GMON 思维导图三 - 网络安全监控
- RDD Join 性能调优
- iOS 数组集合操作(交集,并集,差集,子集)
- 乔布斯经典语录
- LeetCode 360. Sort Transformed Array
- Android原生桌面顶部和底部的渐变阴影去除方法
- FTP 传输文件后台代码
- iOS 蓝牙4.0开发
- labview中关于dynamic dispatch和static dispatch的使用范围
- 详解Windows下Eclipse CDT 配置C-C++ 编译环境
- Cannot subclass final class class com.sun.proxy.$Proxy64
- 使用CXF发布和调用webservice之HelloWorld入门
- java数据类型