边工作边刷题:70天一遍leetcode: day 97-1
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相关推荐
- 边工作边刷题:70天一遍leetcode: day 94-1
Largest BST Subtree 要点: http://articles.leetcode.com/largest-binary-search-tree-bst-in 这题重点是理解题意,还有道 ...
- 边工作边刷题:70天一遍leetcode: day 11-2
Gas Station 老题,这种circular的题一般都能转化成单向的.比如这题就是用sumDiff来判断是否有解,而start单向递增. class Solution(object):def c ...
- 边工作边刷题:70天一遍leetcode: day 92
House Robber I/II/III 这题代表了单向线性dp的基本pattern: build local best value at each element and track the gl ...
- 边工作边刷题:70天一遍leetcode: day 98
LRU Cache 这是一道leetcode的难题,这种题往往是算法结构很复杂,涉及一个或多个考点算法和数据结构的组合,同时又有很多corner cases要考虑.所以一定要找到合适memorize的 ...
- 边工作边刷题:70天一遍leetcode: day 97-2
Design Hit Counter 要点:因为是second granularity,所以可以用以秒为单位的circular buffer方法.这题简单在只需要count过去300秒的,增加难度可以 ...
- 边工作边刷题:70天一遍leetcode: day 73
Read N Characters Given Read4 I/II 要点:这题的要点就是搞清楚几个变量的内在逻辑:只有buffer是整4 bytes的.而client要读的bytes(需求)和实际上 ...
- 边工作边刷题:70天一遍leetcode: day 7
Max Points on a Line 要点:这题暴力解是用任何两点确定一条直线,然后对其他点检查是否共线,显然,这里没用空间来存储之前的检查结果,所以time complexity是O(n^3). ...
- 边工作边刷题:70天一遍leetcode: day 67-1
Rectangle Area 要点:基本思路就是先分开算再减去相交部分,这题的难点是如何检查是否相交和如何算出相交部分的面积. 2d转化为1d:x轴和y轴是orthogonal的.可以分开考虑.这样检 ...
- 边工作边刷题:70天一遍leetcode: day 6
Compare Version Numbers 题本身思路简单没什么可说的.值得一提的是corner case:多出来的0和没有是相同版本,这样最简单的处理是直接对没有的补0.这样因为需要补齐,循环是 ...
- 边工作边刷题:70天一遍leetcode: day 11-1
Clone Graph dfs或者bfs都可以做,这题的要点是hashmap有两个作用:一是图遍历中的visited,另一个是存copy的结点来连接neighbors.hashmap即表示visite ...
最新文章
- [Android]使用RecyclerView替代ListView(四:SeizeRecyclerView)
- h5+ 获取当前位置 并获取当前天气
- Android文档-开发者指南-第一部分:入门-中英文对照版
- LACP/PAGP的定义与差别—Vecloud微云
- 进程外Session和进程内Session存储
- 刷算法题总结的一些结论公式
- 定时自动刷新网页在线工具分享
- 限制外来计算机访问,准入网关|网络准入控制|非法接入检测|限制非法访问解决方案...
- 罕见!百度、微博、拼多多、B站等全国34家互联网巨头集体表态
- 服务器ping不通的解决办法之阿里云云服务器VNC报错Failed to execute /sbin/init
- 发现保存GIF格式后相素发生变化咋办
- 《MYSQL必知必会》— 14~17.子查询、联结、高级联结、组合查询
- .net下如何压缩图片大小,超简单
- blender 建模记录
- 谷歌浏览器Chrome被hao123劫持怎么解决?---- 被hao123、2345、360等主页劫持和捆绑的解决方法
- 【培训实验记录】锐捷SDN交换机和控制器部署
- J storm战队成员_2019-2020赛季DOTA2各战队阵容名单汇总
- 期望、方差、标准差、协方差、相关系数、协方差矩阵、残差、残差平方和(SSE)、标准化残差,残差分析
- 20200323ziji
- 计算机音乐谱巴啦啦小魔,天谕手游巴啦啦小魔仙乐谱代码是什么-天谕手游巴啦啦小魔仙乐谱代码分享_快吧手游...
热门文章
- php自动处理,thinkphp中的三种自动处理
- 测试环境搭建流程_案例解析:一个完整的项目测试方案流程,应该是怎么的?...
- vba excel 开发游戏_为什么要学习VBA?
- linux android编译环境,Linux下Android开发安装环境配置
- python字典的键可以用列表吗_python字典多键值及重复键值的使用方法(详解)
- python3模块文档_Python3模块-Python入门到精通
- 循环队列c语言的实现,循环队列的C语言实现
- mabatisplus怎么给实体类自定义属性_吊打面试官之:当实体类中的属性名和表中的字段名不一样 ,怎么办 ?...
- miniUI怎么显示HTML显示整数,MINIUI后台获取数据
- volumill插件下载网盘地址_IDM也可以下载磁力链接?(附资源)全程30Mb/s!你不知道的那些IDM妙用!...