06 2022 档案

摘要:#归并排序 归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。 将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 ## 阅读全文
posted @ 2022-06-17 14:04 D_WWW 阅读(142) 评论(0) 推荐(0) 编辑
摘要:希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多, 阅读全文
posted @ 2022-06-17 14:03 D_WWW 阅读(60) 评论(0) 推荐(0) 编辑
摘要:#插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 ##插入排序分析 d 阅读全文
posted @ 2022-06-17 14:01 D_WWW 阅读(251) 评论(0) 推荐(0) 编辑
摘要:快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数 阅读全文
posted @ 2022-06-17 14:01 D_WWW 阅读(851) 评论(0) 推荐(0) 编辑
摘要:#选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动 阅读全文
posted @ 2022-06-17 14:00 D_WWW 阅读(78) 评论(0) 推荐(0) 编辑
摘要:冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡 阅读全文
posted @ 2022-06-17 13:59 D_WWW 阅读(874) 评论(0) 推荐(0) 编辑
摘要:###栈,特点先入后出,FILO,python中列表即为栈的实现,append方法相当于入栈,pop方法相当于出栈 ###python中有的队列工具,collections.deque,queue.Queue ####python实现队列 class MyQueue class MyQuene: d 阅读全文
posted @ 2022-06-17 13:58 D_WWW 阅读(48) 评论(0) 推荐(0) 编辑
摘要:###递归实现二叉树 class TreeNode: def __init__(self, data): self.data = data self.left = None self.right = None def create_binary_tree(input_list=[]): # 构建二叉 阅读全文
posted @ 2022-06-17 13:58 D_WWW 阅读(133) 评论(0) 推荐(0) 编辑
摘要:###实现链表 class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.size = 0 self.head = None s 阅读全文
posted @ 2022-06-17 13:57 D_WWW 阅读(25) 评论(0) 推荐(0) 编辑
摘要:##实现列表 ##python中数组即为列表 ###初始化列表 my_list = [3, 1, 2, 5, 4, 9, 7, 2] ###读取元素 print(my_list[2]) ###更新元素 my_list[3] = 10 print(my_list[3]) ###插入元素 #使用pyth 阅读全文
posted @ 2022-06-17 13:56 D_WWW 阅读(94) 评论(0) 推荐(0) 编辑
摘要:####字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/p 阅读全文
posted @ 2022-06-17 11:32 D_WWW 阅读(23) 评论(0) 推荐(0) 编辑
摘要:####统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 python偷鸡解法: class Solution: def search(self, nums: List[int], target: int) -> 阅读全文
posted @ 2022-06-17 11:31 D_WWW 阅读(29) 评论(0) 推荐(0) 编辑
摘要:####一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 来源:力扣(LeetCode) 链接:https://leetcode-cn 阅读全文
posted @ 2022-06-17 11:31 D_WWW 阅读(23) 评论(0) 推荐(0) 编辑
摘要:####在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例 1: 输入:s = "abaccdeff" 输出:'b' 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-ch 阅读全文
posted @ 2022-06-17 11:30 D_WWW 阅读(26) 评论(0) 推荐(0) 编辑
摘要:####请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problem 阅读全文
posted @ 2022-06-17 11:28 D_WWW 阅读(18) 评论(0) 推荐(0) 编辑
摘要:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0) 阅读全文
posted @ 2022-06-17 11:27 D_WWW 阅读(28) 评论(0) 推荐(0) 编辑
摘要:####定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解法:我们使用三个指针,分别指向当前遍历到的结点、它的前一个结点以及后一个结点。 在遍历的时候,做当前结点的尾结点 阅读全文
posted @ 2022-06-17 11:27 D_WWW 阅读(27) 评论(0) 推荐(0) 编辑
摘要:##把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 ###解题思路有两种 阅读全文
posted @ 2022-06-17 11:26 D_WWW 阅读(26) 评论(0) 推荐(0) 编辑
摘要:##输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 前序遍历的第一个值为根节点,在中序遍历中该点左侧为树的左子 阅读全文
posted @ 2022-06-17 11:25 D_WWW 阅读(23) 评论(0) 推荐(0) 编辑
摘要:##用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路,栈是先入后出,队列是先入先出,一个in栈用作进行入栈(push)操作,一个out栈用作进行出栈(pop)操作,入栈时元素进入in栈,在需要出栈时顺序相反,若出栈时栈内为空就返回-1,否则需要将in栈元 阅读全文
posted @ 2022-06-17 11:25 D_WWW 阅读(18) 评论(0) 推荐(0) 编辑
摘要:##输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 ###解答思路 从大佬Jack Cui得到启发,python直接使用列表的插入方法,每次插入数据,只插入在首位。 python # -*- coding:utf-8 -*- # class ListNode: # def __in 阅读全文
posted @ 2022-06-17 11:24 D_WWW 阅读(23) 评论(0) 推荐(0) 编辑
摘要:##请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 ###解答思路 此题用python解答最简单的方法是使用字符串中的自带替换方法——replace 还有一种方法则需要将在每次遍历到空格时 阅读全文
posted @ 2022-06-17 11:23 D_WWW 阅读(31) 评论(0) 推荐(0) 编辑
摘要:##在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 ###解答思路 该二维数组的第一行最后一列的元素很有特点,其左边的数依次小于他,其下面的数依次大于他, 阅读全文
posted @ 2022-06-17 11:22 D_WWW 阅读(55) 评论(0) 推荐(0) 编辑
摘要:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 来源:力扣(LeetCode)链接 阅读全文
posted @ 2022-06-17 11:21 D_WWW 阅读(24) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示