当前位置: 首页 > 后端技术 > Python

力扣300,最长的升序子序列Python实现

时间:2023-03-26 14:47:52 Python

题目需要思路:定义一个数组mylist,其长度与给定的数组长度相同,迭代数组,将数组的值依次插入到mylist中,用maxlen表示当前的长度插入的数组元素。如果当前元素在被插入元素的两个值之间,将这个值赋给两个值中较大的一个(如果当前插入元素为4,则插入序列为1,3,6,7,可见即4大于3小于6,如果后面还有5,那么还是可以用1,3,4,7组成一个新的递增序列,但是6不行)如果当前元素比较大比mylist中的所有元素,加入mylist[已经插入的数组长度](因为长度比下标多1)核心代码:#定义插入序列的长度maxlen=0#定义一个newlistmylist=[0]*len(nums)#遍历题目中的listforjinnums:#这里使用了二分查找,因为是排序序列,所以每次只和中间值比较low,high=0,maxlenwhilelow