当前位置:网站首页>Leetcode brush questions day49
Leetcode brush questions day49
2022-07-07 17:07:00 【51CTO】
Today's key points — greedy
List of articles
55. Jumping game
Title Description
Given an array of nonnegative integers nums
, You're in the beginning of the array The first subscript .
Each element in the array represents the maximum length you can jump at that location .
Judge whether you can reach the last subscript .
Example 1:
Example 2:
Thought analysis
When I first saw this question, I might think : If the current location element is 3, What on earth am I doing , Or two steps , Or three steps , How many steps is the best ?
In fact, it doesn't matter how many steps you take , The key is the coverage that can jump !
In this range , Never mind how you jump , You can jump over anyway .
Then this question turns into whether the jump coverage can cover the end point !
Take the maximum number of jump steps per move ( Get maximum coverage ), Every unit moved , Update the maximum coverage .
Greedy algorithm local optimal solution : Take the maximum number of jump steps each time ( Take the maximum coverage ), The global optimal solution : Finally, the overall maximum coverage , See if we can reach the end .
The local optimum leads to the global optimum , No counterexample , Try greed !
Pictured :
i Each move can only be made in cover Moving within the limits of , Every time you move an element ,cover Get the supplement of the new coverage of this element , Give Way i Keep moving .
and cover Take only max( The range after the value of this element is supplemented , cover Scope of itself )
.
If cover Greater than or equal to the end subscript , direct return true That's all right. .
Reference code
45. Jumping game II
Title Description
Here's an array of nonnegative integers nums
, You are first in the array .
Each element in the array represents the maximum length you can jump at that location .
Your goal is Use the least number of hops to reach the last position of the array .
Suppose you can always reach the last position of the array .
Example 1:
Example 2:
Thought analysis
This problem is to calculate the minimum number of steps , Then you have to figure out when the steps must be added by one ?
Greedy thinking , Local optimum : At present, you can move as much as possible , If you haven't reached the end , Step number plus one . The overall best : Take as many steps as possible , So as to achieve the minimum number of steps .
Although the idea is like this , But when writing code, you can't really jump far and long , Then you don't know where you can jump the farthest in the next step .
So when you really solve a problem , Start with coverage , No matter how you jump , It must be possible to jump within the coverage , Increase coverage with minimum steps . Once the coverage covers the end point , The result is the minimum number of steps !
Here we need to count two coverage areas , The maximum coverage of the current step and the maximum coverage of the next step .
If the moving subscript reaches the maximum coverage distance of the current step , If you haven't reached the end , Then we must take another step to increase the coverage , Until the coverage covers the end .
Pictured :
Reference code
1005. K The maximum array and... After negation
Title Description
Give you an array of integers nums
And an integer k
, Modify the array as follows :
- Select a subscript
i
And will nums[i]
Replace with -nums[i]
.
Repeating this process happens to k
Time . You can select the same subscript multiple times i
.
After modifying the array in this way , Returns an array of The maximum possible and .
Example 1:
Example 2:
Example 3:
Thought analysis
Greedy thinking , Local optimum : Let a negative number with a large absolute value become a positive number , The current value reaches the maximum , The overall best : The sum of the entire array reaches the maximum .
So if you turn negative numbers into positive numbers ,K Still greater than 0, The problem at this point is a sequence of ordered positive integers , How to change K Secondary positive and negative , Give Way Array and Maximum .
Then it's another greedy : Local optimum : Only find the positive integer with the smallest value for inversion , The current value can reach the maximum ( For example, an array of positive integers {5, 3, 1}, reverse 1 obtain -1 Than reverse 5 Got -5 Mostly ), The best in the world : Whole Array and Maximum .
Then the steps to solve this problem are :
- First step : Sort the array according to the absolute value size from large to small , Pay attention to the size of the absolute value
- The second step : Traverse back and forth , When you encounter a negative number, change it to a positive number , meanwhile K–
- The third step : If K Greater than 0, Then repeatedly change the element with the lowest value , take K run out
- Step four : Sum up
Reference code
If there is harvest !!! I hope the old fellow will have three links. , give the thumbs-up 、 Collection 、 forward .
It's not easy to create , Don't forget to like it , More people can see this article , By the way, encourage me to write a better blog
边栏推荐
- The process of creating custom controls in QT to encapsulating them into toolbars (II): encapsulating custom controls into toolbars
- 最新阿里P7技术体系,妈妈再也不用担心我找工作了
- LeetCode 1774. The dessert cost closest to the target price is one question per day
- Sator推出Web3游戏“Satorspace” ,并上线Huobi
- Read PG in data warehouse in one article_ stat
- Binary search tree (basic operation)
- The latest interview experience of Android manufacturers in 2022, Android view+handler+binder
- 99% 用户在 Power BI 云端报表常犯错误
- 浅浅理解.net core的路由
- Sator推出Web3游戏“Satorspace” ,并上线Huobi
猜你喜欢
The latest interview experience of Android manufacturers in 2022, Android view+handler+binder
直接上干货,100%好评
How to add aplayer music player in blog
DNS 系列(一):为什么更新了 DNS 记录不生效?
NeRF:DeepFake的最终替代者?
[image sensor] correlated double sampling CDs
[Seaborn] combination chart: facetgrid, jointgrid, pairgrid
字节跳动Android面试,知识点总结+面试题解析
【图像传感器】相关双采样CDS
Binary search tree (features)
随机推荐
【黄啊码】为什么我建议您选择go,而不选择php?
Pychart ide Download
数据中台落地实施之法
Process from creation to encapsulation of custom controls in QT to toolbar (I): creation of custom controls
Interface oriented programming
如何在软件研发阶段落地安全实践
Talk about the realization of authority control and transaction record function of SAP system
LeetCode 1477. 找两个和为目标值且不重叠的子数组 每日一题
Pisa-Proxy SQL 解析之 Lex & Yacc
ByteDance Android gold, silver and four analysis, Android interview question app
【图像传感器】相关双采样CDS
SlashData开发者工具榜首等你而定!!!
Module VI
掌握这个提升路径,面试资料分享
LeetCode-SQL第一天
服务器彻底坏了,无法修复,如何利用备份无损恢复成虚拟机?
自定义View必备知识,Android研发岗必问30+道高级面试题
LeetCode 1986. The minimum working time to complete the task is one question per day
掌握这套精编Android高级面试题解析,oppoAndroid面试题
Proxmox VE重装后,如何无损挂载原有的数据盘?