讲一下我的思路一开始我想的是倒序遍历,查看nums[i]==0的元素前面的值是否大于等于从0开始经过的距离,这种做法条件判断很繁琐,不是正确的做法。下面讲解正确的做法从前往后遍历。每次遍历到一个数,如果可以到达当前位置,就记录当前位置的下标i+nums[i]的值,记作maxLen,表示从当前位置出发可以到达的最远位置。循环结束后把maxLen和数组长度n-1作比较,看maxLen是否大于等于n-1
快速排序在面试题中经常被问,总结一下。 快速排序的思想是对冒泡排序的改进,并且使用了递归,它通过把待排序元素划分成左右两个子数组减少比较次数。它的核心算法是求分解值所在的索引。 接下来我讲一下如何求索引值partition。通常指定待排序数组的索引 0 处的元素为 key,使用索引 left 和 right 遍历待排序区间,待排序区间是 [lo,hi],left初始化为 lo,right初始化为
本人是一个双非院校的学生,由于技术不够好且没有拿过大型的比赛奖项,所以找实习异常困难。我想劝告还没毕业的同学,千万要每天学习基础知识,比如一些编程语言,另外操作系统也要看好的参考资料,学校的那本破书扔了吧,买一本黑皮书结合B站视频去学习,绝对比老师教的好。现在国内的大学老师自己水平很low还误导了学生。除非你是天资过人,竞赛拿奖保研的那种,否则一定要自己下功夫打基础。来自大三同学的血泪经验。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号