首页 > 其他分享 >Study Plan For Algorithms - Part41

Study Plan For Algorithms - Part41

时间:2024-09-25 12:24:27浏览次数:1  
标签:head Part41 val nums Study next 链表 Algorithms prev

1. 搜索旋转排序数组 II
已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。
在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。
给定 旋转后 的数组 nums 和一个整数 target ,请编写一个函数来判断给定的目标值是否存在于数组中。如果 nums 中存在这个目标值 target ,则返回 true ,否则返回 false 。

class Solution:
    def search(self, nums: List[int], target: int) -> bool:
        left, right = 0, len(nums) - 1
        while left <= right:
            mid = (left + right) // 2
            if nums[mid] == target:
                return True
            if nums[left] < nums[mid]:
                if nums[left] <= target < nums[mid]:
                    right = mid - 1
                else:
                    left = mid + 1
            elif nums[left] > nums[mid]:
                if nums[mid] < target <= nums[right]:
                    left = mid + 1
                else:
                    right = mid - 1
            else:
                left += 1
        return False

2. 删除排序链表中的重复元素 II
给定一个已排序的链表的头 head ,删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。

class Solution:
    def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
        if not head:
            return head

        dummy = ListNode(0, head)
        prev = dummy

        while head and head.next:
            if head.val == head.next.val:
                while head.next and head.val == head.next.val:
                    head = head.next
                prev.next = head.next
            else:
                prev = prev.next
            head = head.next

        return dummy.next

标签:head,Part41,val,nums,Study,next,链表,Algorithms,prev
From: https://www.cnblogs.com/stephenxiong001/p/18431061

相关文章

  • Study Plan For Algorithms - Part42
    1.删除排序链表中的重复元素给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。classSolution:defdeleteDuplicates(self,head:Optional[ListNode])->Optional[ListNode]:ifnothead:returnhe......
  • Business Analytics Case Study
    BusinessAnalyticsCaseStudyCaseDescriptionThefinalbusinessanalyticscasestudyhas two components: a) data transformation with SSIS and b) predictive analysiswithRapidMiner.Bothtasksarebasedonindividualflight experiences from......
  • Redis_study_01
    Redis十大基本数据类型总览:数据类型是指value的数据类型,key的数据类型固定为StringRedis命令不区分大小写,但是key区分大小写,因为key是唯一的都是一些命令,不懂的直接在官网上搜,里面的参数都有解释https://redis.io/docs/latest/commands例如String里面的setSETke......
  • contemplate、consider、study和weigh的区别
    contemplate、consider、study和weigh都表示经过思考而做出决定的意思。他们的区别在于:contemplate强调思考的过程本身。consider强调思考后做出的决定。study强调决定是通过严谨的研究的。weigh强调决定时在几个选项中进行了权衡。 具体的例子: herefusedeventocon......
  • CRICOS Data Structures and Algorithms Trees
    DataStructuresandAlgorithmsTreesPage1of3CRICOSProvideCode:00301JNote:DSATreeNodehasalreadybeenwrittenforyou,butyou’llneedtounderstandandtestit.Thecodeforfind()wasalreadyimplementedforyou-insert()anddelete()are......
  • Study Plan For Algorithms - Part35
    1.x的平方根给定一个非负整数x,计算并返回x的算术平方根。classSolution:defmySqrt(self,x:int)->int:ifx==0:return0left,right=1,xwhileleft<=right:mid=left+(right-left)//2......
  • Study Plan For Algorithms - Part36
    1.简化路径给定一个字符串path,表示指向某一文件或目录的Unix风格绝对路径(以'/'开头),请将其转化为更加简洁的规范路径。在Unix风格的文件系统中规则如下:一个点'.'表示当前目录本身。此外,两个点'..'表示将目录切换到上一级(指向父目录)。任意多个连续的斜杠(即,'//......
  • Study Plan For Algorithms - Part34
    1.二进制求和给定两个二进制字符串a和b,以二进制字符串的形式返回它们的和。classSolution:defaddBinary(self,a:str,b:str)->str:i=len(a)-1j=len(b)-1carry=0result=[]whilei>=0orj>=0or......
  • Study Plan For Algorithms - Part33
    1.和为s的两个数字输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。方法一:deftwoSum(nums,target):left=0right=len(nums)-1whileTrue:res=nums[left]+nums[right]ifres==target:......
  • phpStudy 小皮 Windows面板 存在RCE漏洞
    靶场资料后台自行领取【靶场】Phpstudy小皮面板存在RCE漏洞,通过分析和复现方式发现其实本质上是一个存储型XSS漏洞导致的RCE。通过系统登录用户名输入处的XSS配合系统后台自动添加计划任务实现RCE。这是登录成功的界面登录成功了就来和大佬们喝喝茶吧~首先在用户名登录的......