当前位置:网站首页>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
边栏推荐
猜你喜欢

Pisa-Proxy SQL 解析之 Lex & Yacc

最新Android面试合集,android视频提取音频

The latest interview experience of Android manufacturers in 2022, Android view+handler+binder

浅浅理解.net core的路由

AI来搞财富分配比人更公平?来自DeepMind的多人博弈游戏研究

QT中自定义控件的创建到封装到工具栏过程(二):自定义控件封装到工具栏

Interface oriented programming

QT picture background color pixel processing method

掌握这个提升路径,面试资料分享

Skimage learning (2) -- RGB to grayscale, RGB to HSV, histogram matching
随机推荐
LocalStorage和SessionStorage
Read PG in data warehouse in one article_ stat
Arduino 控制的双足机器人
LeetCode 1696. 跳跃游戏 VI 每日一题
直接上干货,100%好评
A tour of gRPC:03 - proto序列化/反序列化
How to add aplayer music player in blog
最新阿里P7技术体系,妈妈再也不用担心我找工作了
ATM系统
MRS离线数据分析:通过Flink作业处理OBS数据
自定义View必备知识,Android研发岗必问30+道高级面试题
在哪个期货公司开期货户最安全?
Process from creation to encapsulation of custom controls in QT to toolbar (I): creation of custom controls
LeetCode 1626. 无矛盾的最佳球队 每日一题
应用在温度检测仪中的温度传感芯片
mysql实现两个字段合并成一个字段查询
如何选择合适的自动化测试工具?
Deep listening array deep listening watch
掌握这套精编Android高级面试题解析,oppoAndroid面试题
【Seaborn】组合图表:FacetGrid、JointGrid、PairGrid