
排序&二分查找
leetcode 排序&二分查找
萝卜upupup
每天走出舒适圈一点点 [太阳]
展开
-
剑指 Offer 53 - II. 0~n-1中缺失的数字
剑指 Offer 53 - II. 0~n-1中缺失的数字https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof/class Solution(object): def missingNumber(self, nums): """ :type nums: List[int] :rtype: int """ n=len(nums) #如果缺失的数字原创 2020-11-30 15:43:15 · 92 阅读 · 0 评论 -
二分法查找
二分法查找# 给定一个有序(升序)的列表与待查找的关键字,成功则返回其索引,失败则返回-1。def halfsearch(a,x): left=0 right=len(a)-1 mid=(left+right)//2 while(left<=right): if a[mid]==x: return mid if a[mid]>x: right=mid-1 else:原创 2020-11-18 17:49:02 · 124 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
剑指 Offer 11. 旋转数组的最小数字https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/class Solution(object): def minArray(self, numbers): """ :type numbers: List[int] :rtype: int """ if numbers==[]:原创 2020-11-30 15:42:20 · 102 阅读 · 0 评论 -
面试题 10.03. 搜索旋转数组
https://leetcode-cn.com/problems/search-rotate-array-lcci/class Solution(object): def search(self, arr, target): """ :type arr: List[int] :type target: int :rtype: int """ if arr==[]: return原创 2020-11-30 14:45:16 · 108 阅读 · 0 评论 -
MergeSort 归并排序
mergeSort 归并排序 思想:归并排序是用分治思想:分解(Divide):将n个元素分成个含n/2个元素的子序列。解决(Conquer):用合并排序法对两个子序列递归的排序。合并(Combine):合并两个已排序的子序列已得到排序结果。合并的方法:比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。代码:#归并排序def merge(left_arr,right_arr): all_a原创 2020-11-28 10:49:02 · 124 阅读 · 0 评论 -
BubbleSort 冒泡排序
BubbleSort 冒泡排序代码:#冒泡排序arr=[7,6,2,1,4,3,5,8]for i in range(0,len(arr)): for j in range(0,len(arr)-i-1): if arr[j]>arr[j+1]: arr[j],arr[j+1]=arr[j+1],arr[j]print(arr) #[1, 2, 3, 4, 5, 6, 7, 8]时间复杂度:O(n^2)空间复杂度:O( 1 )稳定原创 2020-11-28 10:52:52 · 95 阅读 · 0 评论 -
Heapsort 堆排序
Heapsort 堆排序 转载https://blog.youkuaiyun.com/qq_34840129/article/details/80638225的图解,讲得很清晰。图解:下面用图来解释堆排序的具体过程:假设最初的无序的列表为[5,6,8,1,2,4,9],经过堆的初始化操作后得到的对堆结构如下:然后开始进行堆排序,每次都交换堆顶和末尾元素,然后对堆顶元素进行一次向下筛选,带颜色区域为...转载 2020-03-21 14:12:54 · 127 阅读 · 0 评论 -
QuickSort 快速排序
quickSort 快速排序算法 借鉴《啊哈!算法》这本萌书和python菜鸟教程的想法。思想:挑选基准值:从数列中挑出一个元素,称为"基准"(pivot);分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(与基准值相等的数可以到任何一边)。在这个分割结束之后,对基准值的排序就已经完成;递归排序子序列:递归地将小于基准值元素的子序列和大于基准值元...原创 2020-03-20 15:31:15 · 268 阅读 · 0 评论 -
leetcode 148. 排序链表
leetcode 148. 排序链表https://leetcode-cn.com/problems/sort-list/# Definition for singly-linked list.# class ListNode(object):# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution(object): def so原创 2020-12-01 00:35:11 · 105 阅读 · 0 评论 -
leetcode 179. 最大数
https://leetcode-cn.com/problems/largest-number/原创 2020-11-28 15:10:08 · 155 阅读 · 0 评论 -
剑指 Offer 45. 把数组排成最小的数
https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof/原创 2020-11-28 14:48:32 · 78 阅读 · 0 评论 -
leetcode 945. Minimum Increment to Make Array Unique 使数组唯一的最小增量 排序/计数
leetcode 945. Minimum Increment to Make Array Unique 使数组唯一的最小增量 排序/计数leetcode 2020年3月 每日一题打卡题目:给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。返回使 A 中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2]输出:1解释:经过一次 move 操作,数...原创 2020-03-22 10:27:28 · 153 阅读 · 0 评论 -
leetcode 面试题40. 最小的k个数 面试 topK解法 快排变形/堆排序
leetcode 面试题40. 最小的k个数 面试 topK解法 快排变形/堆 leetcode 2020年3月 每日一题打卡剑指offer题目:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:...原创 2020-03-21 19:44:32 · 308 阅读 · 0 评论 -
leetcode 75. Sort Colors 颜色分类 三色旗/荷兰国旗问题 快排思路
leetcode 75. Sort Colors 颜色分类 三色旗/荷兰国旗问题 快排思路刷力扣不是为了AC而AC,而是嚼碎每一道题,面试时有思路可以表达。当然有些工程师更高尚的想法是为了算法思维、为了计算机算法领域的研究事业,鼓掌!题目:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0...原创 2020-03-20 16:21:48 · 564 阅读 · 0 评论