
python
现在13℃
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
面试代码题记录9-leetcode917-仅仅反转字母
https://leetcode-cn.com/problems/reverse-only-letters/给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例1输入:"ab-cd"输出:"dc-ba"示例2输入:"a-bC-dEf-ghIj"输出:"j-Ih-gfE-dCba"示例3输入:"Test1ng-Leet=code-Q!"输出:"Qedo1ct-eeLg=ntse-T!"提示代码class Solutio原创 2021-09-23 11:23:21 · 227 阅读 · 1 评论 -
面试代码题记录8-剑指offer42-连续子数组的最大和
https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:代码class Solution: def maxSubArray(self, n原创 2021-09-22 15:49:07 · 176 阅读 · 0 评论 -
华为笔试题1-面试题17.24-最大子矩阵
https://leetcode-cn.com/problems/max-submatrix-lcci/给定一个正整数、负整数和 0 组成的 N × M 矩阵,编写代码找出元素总和最大的子矩阵。返回一个数组 [r1, c1, r2, c2],其中 r1, c1 分别代表子矩阵左上角的行号和列号,r2, c2 分别代表右下角的行号和列号。若有多个满足条件的子矩阵,返回任意一个均可。注意:本题相对书上原题稍作改动示例1输入:[ [-1,0], [0,-1]]输出:[0,1,0,1]原创 2021-09-15 22:49:25 · 565 阅读 · 0 评论 -
面试代码题记录6-leetcode1-两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例2输入:nums = [3,2,4], target = 6输出原创 2021-09-15 17:35:32 · 148 阅读 · 0 评论 -
面试代码题记录5-leetcode260-只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例1输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。示例2输入:nums = [-1,0]输出:[-1,0]示例3输入:nums = [0,1]输出:[1,0]代码:class Solution: def原创 2021-09-15 17:11:05 · 111 阅读 · 0 评论 -
面试代码题记录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 - 1nums 中,除原创 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 · 216 阅读 · 0 评论 -
面试代码题记录2-leetcode74-搜索二维矩阵+leetcode240-搜索二维矩阵II
https://leetcode-cn.com/problems/search-a-2d-matrix/编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例1输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true示例2输入:matrix = [[1,3,5,7],[10,11,16,20],原创 2021-09-09 17:01:36 · 194 阅读 · 0 评论 -
面试代码题记录1-leetcode074-合并区间
https://leetcode-cn.com/problems/SsGoHC/以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例1输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1原创 2021-09-09 16:41:11 · 124 阅读 · 0 评论 -
手撕代码常见题2-leetcode7-整数反转
https://leetcode-cn.com/problems/reverse-integer/给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231 ,231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例1输入:x = 123输出:321示例2输入:x = -123输出:-321示例3输入:x = 120输出:21示例4输入:x = 0输出:0提示原创 2021-09-07 12:03:19 · 134 阅读 · 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 评论 -
python+pycharm安装
一、下载安装python解释器下载地址:https://www.python.org/downloads/release/python-372/[单击上述链接]->查找目标文件:Windows x86-64 executable installer->单击即可下载安装:双击可执行文件->勾选[pip]->[Next]->[勾选添加环境变量]->install,按提示操作即可。二、下载安装pycharm下载地址:http://www.jetbrains.c原创 2021-07-19 10:49:17 · 199 阅读 · 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】:最长回文串
题目给定一个字符串 s,找到 s 中最长的回文子串回文串示例:abcba给定字符串:sssabcba1da(参考leetcode评论区)代码"""dp方程dp[i][j]代表s[i~j]是否为回文串,是为1,不是为0dp[i][i]=1if s[i]==s[i+1] dp[i][i+1]=1s[i]=s[i+len]&&dp[i+1][i+len-1]==1 => dp[i][i+len]=1"""def longestPalindrome(s): n原创 2021-02-05 19:25:01 · 109 阅读 · 0 评论 -
【代码题python】【leetcode】三个数之和为0
题目给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。注意:三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)解集中不能包含重复的三元组。参考:https://blog.csdn.net/weixin_43569660/article/details/90043715代码:class Solution: def threeSum(num): out = [] # 输出的和为0的嵌套列表 if le原创 2021-01-16 17:52:02 · 1708 阅读 · 3 评论 -
【代码题python】【leetcode】找到字符串的最长无重复字符子串
参考:https://blog.csdn.net/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 · 507 阅读 · 1 评论 -
【代码题python】:一个列表[1,2,5,3,2,5,7,8,9,11,2,33,44,51,4,7,9],请去除重复数字并输出去除后新的列表
题目一个列表[1,2,5,3,2,5,7,8,9,11,2,33,44,51,4,7,9],请去除重复数字并输出去除后新的列表代码list1 = [1, 2, 5, 3, 2, 5, 7, 8, 9, 11, 2, 33, 44, 51, 4, 7, 9]print(f'原始列表为:{list1}')list2 = []for i in range(len(list1)): if list1[i] in list1[0:i]: list2.append(list1[i])原创 2021-01-09 16:19:47 · 3004 阅读 · 0 评论 -
【代码题python】:将n元钱随机分给m个人,每个人最少0.01。输入m、n,输出长度为m的数组。
题目将n元钱随机分给m个人,每个人最少0.01。输入m、n,输出长度为m的数组。例如输入10.00,2,输出[8.17,1.83]代码import randomresult = []def hb(n, m): for i in range(m - 1): result.append(random.uniform(0.01, n - sum(result))) result.append(n - sum(result)) return result原创 2021-01-09 15:59:48 · 1782 阅读 · 0 评论 -
python实现堆排序
参考:https://blog.csdn.net/weixin_42109012/article/details/91668543https://blog.csdn.net/sunxianghuang/article/details/51872360堆堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]]>=A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求而知,最大的值一定在堆顶。最小堆通常在构造优先队列时使用。原创 2021-01-07 17:18:14 · 583 阅读 · 0 评论 -
python实现直接选择排序(简单选择排序)
参考:https://blog.csdn.net/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.csdn.net/sunxianghuang/article/details/51872360https://blog.csdn.net/wy12345432452/article/details/78459512希尔排序是一个基于插入排序的改进型插入排序算法。由于插入排序一次只能交换相邻的元素,因此元素只能一点点的从数组的一端移动到另一端。如果最小的元素在数组的末尾的话,那就需要N-1次移动,因此对于插入排序的效率是非常低的。希尔排序的基本思想:先取一个小于n的整原创 2021-01-07 10:51:50 · 196 阅读 · 0 评论 -
python实现直接插入排序
参考:https://blog.csdn.net/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.csdn.net/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 · 118 阅读 · 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 评论