Sort Transformed Array

要点:
知道了解法就容易了:本质:如何把一个单调的转化成双向单调的:结构包括两部分:原array的选择方向(双指针)和填结果array的方向。

  • min/max在input sorted array的中间点,所以双向验证,另外根据开口方向,决定从两边走是越来越大还是越来越小决定从那边填结果array。
  • a==0的情况可以和a>0的情况相同:因为变成单调的,无论升降,都是某一边一直占优势,所以和a>0或a<0没差别。

https://repl.it/C9tc/1

class Solution(object):def sortTransformedArray(self, nums, a, b, c):""":type nums: List[int]:type a: int:type b: int:type c: int:rtype: List[int]"""def calRes(num):return a*num*num + b*num + cn = len(nums)res = []i,j = 0, n-1if a>=0:while i<=j:x, y = calRes(nums[i]), calRes(nums[j])if x>=y:res.append(x)i+=1else:res.append(y)j-=1return res[::-1]else:while i<=j:x, y = calRes(nums[i]), calRes(nums[j])if x<=y:res.append(x)i+=1else:res.append(y)j-=1return ressol = Solution()
assert sol.sortTransformedArray([-4,-2,2,4], 1,3,5)==[3,9,15,33], "result should be [3,9,15,33]"

转载于:https://www.cnblogs.com/absolute/p/5815928.html

边工作边刷题:70天一遍leetcode: day 97-1相关推荐

  1. 边工作边刷题:70天一遍leetcode: day 94-1

    Largest BST Subtree 要点: http://articles.leetcode.com/largest-binary-search-tree-bst-in 这题重点是理解题意,还有道 ...

  2. 边工作边刷题:70天一遍leetcode: day 11-2

    Gas Station 老题,这种circular的题一般都能转化成单向的.比如这题就是用sumDiff来判断是否有解,而start单向递增. class Solution(object):def c ...

  3. 边工作边刷题:70天一遍leetcode: day 92

    House Robber I/II/III 这题代表了单向线性dp的基本pattern: build local best value at each element and track the gl ...

  4. 边工作边刷题:70天一遍leetcode: day 98

    LRU Cache 这是一道leetcode的难题,这种题往往是算法结构很复杂,涉及一个或多个考点算法和数据结构的组合,同时又有很多corner cases要考虑.所以一定要找到合适memorize的 ...

  5. 边工作边刷题:70天一遍leetcode: day 97-2

    Design Hit Counter 要点:因为是second granularity,所以可以用以秒为单位的circular buffer方法.这题简单在只需要count过去300秒的,增加难度可以 ...

  6. 边工作边刷题:70天一遍leetcode: day 73

    Read N Characters Given Read4 I/II 要点:这题的要点就是搞清楚几个变量的内在逻辑:只有buffer是整4 bytes的.而client要读的bytes(需求)和实际上 ...

  7. 边工作边刷题:70天一遍leetcode: day 7

    Max Points on a Line 要点:这题暴力解是用任何两点确定一条直线,然后对其他点检查是否共线,显然,这里没用空间来存储之前的检查结果,所以time complexity是O(n^3). ...

  8. 边工作边刷题:70天一遍leetcode: day 67-1

    Rectangle Area 要点:基本思路就是先分开算再减去相交部分,这题的难点是如何检查是否相交和如何算出相交部分的面积. 2d转化为1d:x轴和y轴是orthogonal的.可以分开考虑.这样检 ...

  9. 边工作边刷题:70天一遍leetcode: day 6

    Compare Version Numbers 题本身思路简单没什么可说的.值得一提的是corner case:多出来的0和没有是相同版本,这样最简单的处理是直接对没有的补0.这样因为需要补齐,循环是 ...

  10. 边工作边刷题:70天一遍leetcode: day 11-1

    Clone Graph dfs或者bfs都可以做,这题的要点是hashmap有两个作用:一是图遍历中的visited,另一个是存copy的结点来连接neighbors.hashmap即表示visite ...

最新文章

  1. [Android]使用RecyclerView替代ListView(四:SeizeRecyclerView)
  2. h5+ 获取当前位置 并获取当前天气
  3. Android文档-开发者指南-第一部分:入门-中英文对照版
  4. LACP/PAGP的定义与差别—Vecloud微云
  5. 进程外Session和进程内Session存储
  6. 刷算法题总结的一些结论公式
  7. 定时自动刷新网页在线工具分享
  8. 限制外来计算机访问,准入网关|网络准入控制|非法接入检测|限制非法访问解决方案...
  9. 罕见!百度、微博、拼多多、B站等全国34家互联网巨头集体表态
  10. 服务器ping不通的解决办法之阿里云云服务器VNC报错Failed to execute /sbin/init
  11. 发现保存GIF格式后相素发生变化咋办
  12. 《MYSQL必知必会》— 14~17.子查询、联结、高级联结、组合查询
  13. .net下如何压缩图片大小,超简单
  14. blender 建模记录
  15. 谷歌浏览器Chrome被hao123劫持怎么解决?---- 被hao123、2345、360等主页劫持和捆绑的解决方法
  16. 【培训实验记录】锐捷SDN交换机和控制器部署
  17. J storm战队成员_2019-2020赛季DOTA2各战队阵容名单汇总
  18. 期望、方差、标准差、协方差、相关系数、协方差矩阵、残差、残差平方和(SSE)、标准化残差,残差分析
  19. 20200323ziji
  20. 计算机音乐谱巴啦啦小魔,天谕手游巴啦啦小魔仙乐谱代码是什么-天谕手游巴啦啦小魔仙乐谱代码分享_快吧手游...

热门文章

  1. php自动处理,thinkphp中的三种自动处理
  2. 测试环境搭建流程_案例解析:一个完整的项目测试方案流程,应该是怎么的?...
  3. vba excel 开发游戏_为什么要学习VBA?
  4. linux android编译环境,Linux下Android开发安装环境配置
  5. python字典的键可以用列表吗_python字典多键值及重复键值的使用方法(详解)
  6. python3模块文档_Python3模块-Python入门到精通
  7. 循环队列c语言的实现,循环队列的C语言实现
  8. mabatisplus怎么给实体类自定义属性_吊打面试官之:当实体类中的属性名和表中的字段名不一样 ,怎么办 ?...
  9. miniUI怎么显示HTML显示整数,MINIUI后台获取数据
  10. volumill插件下载网盘地址_IDM也可以下载磁力链接?(附资源)全程30Mb/s!你不知道的那些IDM妙用!...