
算法
现在13℃
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
面试代码题记录4-leetcode004-只出现一次的数字
https://leetcode-cn.com/problems/WGki4K/ 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 示例1 输入:nums = [2,2,3,2] 输出:3 示例2 输入:nums = [0,1,0,1,0,1,100] 输出:100 提示 1 <= nums.length <= 3 * 10^4 -2^31 <= nums[i] <= 2^31 - 1 nums 中,除原创 2021-09-14 23:20:04 · 240 阅读 · 0 评论 -
面试代码题记录3-leetcode179-最大数
https://leetcode-cn.com/problems/largest-number/ 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例1 输入:nums = [10,2] 输出:"210" 示例2 输入:nums = [3,30,34,5,9] 输出:"9534330" 示例3 输入:nums = [1] 输出:"1" 示例4 输入:nums = [10] 输出:"10" 提示原创 2021-09-14 20:45:24 · 215 阅读 · 0 评论 -
手撕代码常见题1-leetcode3-无重复字符的最长子串
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例1 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例2 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例3 输入: s = "pw原创 2021-08-07 18:19:29 · 204 阅读 · 0 评论 -
【leetcode】刷题记录-python
0717更新 1 剑指 Offer 42. 连续子数组的最大和 难度:简单 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 提示: 1 <= arr.length <= 10^5 -100 <= arr[i] <= 100 错误答案 class Solution:原创 2021-07-17 18:12:02 · 119 阅读 · 0 评论 -
【代码题python】【leetcode】三个数之和为0
题目 给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。 注意: 三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c) 解集中不能包含重复的三元组。 参考:https://blog.youkuaiyun.com/weixin_43569660/article/details/90043715 代码: class Solution: def threeSum(num): out = [] # 输出的和为0的嵌套列表 if le原创 2021-01-16 17:52:02 · 1706 阅读 · 3 评论 -
【代码题python】【leetcode】找到字符串的最长无重复字符子串
参考:https://blog.youkuaiyun.com/qq_34771726/article/details/88643476 给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。 示例一 示例二 代码: def maxlength(s): maxn = 1 # 最大不重复子串的长度 st = [s[0]] # 用一个新列表放置非重复字符子串,初始化为s[0] tmp = 1 # 记录新列表的长度 for i in range(1,原创 2021-01-15 17:33:06 · 506 阅读 · 1 评论 -
python实现堆排序
参考: https://blog.youkuaiyun.com/weixin_42109012/article/details/91668543 https://blog.youkuaiyun.com/sunxianghuang/article/details/51872360 堆 堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]]>=A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求而知,最大的值一定在堆顶。最小堆通常在构造优先队列时使用。原创 2021-01-07 17:18:14 · 583 阅读 · 0 评论 -
python实现直接选择排序(简单选择排序)
参考: https://blog.youkuaiyun.com/sunxianghuang/article/details/51872360 思想: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 代码 def simple_sorted(s): for i in range(len(s)): m = i for j in range(i, len(s)): if s[j] < s[m]原创 2021-01-07 11:36:06 · 344 阅读 · 0 评论 -
python实现希尔排序
参考:https://blog.youkuaiyun.com/sunxianghuang/article/details/51872360 https://blog.youkuaiyun.com/wy12345432452/article/details/78459512 希尔排序是一个基于插入排序的改进型插入排序算法。 由于插入排序一次只能交换相邻的元素,因此元素只能一点点的从数组的一端移动到另一端。如果最小的元素在数组的末尾的话,那就需要N-1次移动,因此对于插入排序的效率是非常低的。 希尔排序的基本思想: 先取一个小于n的整原创 2021-01-07 10:51:50 · 196 阅读 · 0 评论 -
python实现直接插入排序
参考:https://blog.youkuaiyun.com/sunxianghuang/article/details/51872360 思想 每步将一个待排序的纪录,按其关键字的大小插入到已经排好序的有序数据中,直到全部插入完为止。 代码: def insert_sorted(s): for i in range(len(s)): temp = s[i] if i > 0: for j in range(i - 1, -1, -1):原创 2021-01-06 20:16:15 · 501 阅读 · 0 评论 -
python实现归并排序
参考:https://blog.youkuaiyun.com/qq_36813467/article/details/88848415 归并排序思想 代码 def gb_sorted(s1, s2, s): # 将s1和s2合并为s,s为原始列表 i = 0 # s1初始指针位置 j = 0 # s2初始指针位置 while i + j < len(s): # s2走完 或者 s1没走完但是s1[i]小于s2[j] if j == len(s2)原创 2021-01-06 17:36:43 · 112 阅读 · 0 评论 -
python实现快速排序
快速排序思想 代码 def quickly_sorted(start, end, data): # 列表只有一个元素时,直接返回 if start == end: return data else: i = start j = end base = data[start] while i < j: if data[j] < base:原创 2021-01-06 12:05:55 · 117 阅读 · 0 评论 -
python实现冒泡排序
冒泡排序思想 对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较 当前面的记录大于后面的记录时,交换其位置 进行一轮比较和换位后 n个记录中最大记录将位于第n位 然后对前n-1个进行第2次比较 重复,直到进行比较的记录剩下一个为止 代码如下: def bubble_sorted(data): for j in range(len(data) - 1): for i in range(len(data) - (j + 1)): if data[i原创 2021-01-06 11:17:10 · 290 阅读 · 0 评论