当前位置: 首页> 新闻> 会展 > 力扣(2024.06.30)

力扣(2024.06.30)

时间:2025/7/8 21:27:44来源:https://blog.csdn.net/m0_52507142/article/details/140087761 浏览次数:4次

1. 81——搜索旋转排序数组2

已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。

在传递给函数之前,nums 在预先未知的某个下标 k0 <= k < nums.length)上进行了旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标从 0 开始计数)。例如,[0,1,2,4,4,4,5,6,6,7] 在下标 处经旋转后可能变为 [4,5,6,6,7,0,1,2,4,4] 。

给你旋转后的数组 nums 和一个整数 target ,请你编写一个函数来判断给定的目标值是否存在于数组中。如果 nums 中存在这个目标值 target ,则返回 true ,否则返回 false 。

你必须尽可能减少整个操作步骤。

标签:数组,二分查找

代码:

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

2. 82——删除排序链表中的重复元素2

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

标签:链表,双指针

代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:pointer1 = dummy = ListNode()pointer2 = headwhile pointer2:val1 = pointer2.valval2 = pointer2.next.val if pointer2.next else 0if val1 != val2:pointer1.next = pointer2pointer1 = pointer1.nextpointer2 = pointer2.nextelse:while pointer2 and pointer2.val == val1:pointer2 = pointer2.nextpointer1.next = pointer2return dummy.next

3. 83——删除排序链表中的重复元素

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。

标签:链表

代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:if not head:return headelse:dummy = pointer = ListNode()pointer.next = headpointer = pointer.nextwhile head:if pointer.val != head.val:pointer.next = headpointer = pointer.nexthead = head.nextelse:head = head.nextpointer.next = Nonereturn dummy.next

关键字:力扣(2024.06.30)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: