python输入数组、最大的与最后一个元素交换_Python小白 Leetcode刷题历程 No.31-No.35 下一个排列、最长有效括号、搜索旋转排序数组、在排序数组中查找元素的第一个和最后一个位...

Python小白 Leetcode刷题历程 No.31-No.35 下一个排列、最长有效括号、搜索旋转排序数组、在排序数组中查找元素的第一个和最后一个位置、搜索插入位置

写在前面:

作为一个计算机院的大学生,总觉得仅仅在学校粗略的学习计算机专业课是不够的,尤其是假期大量的空档期,作为一个小白,实习也莫得路子,又不想白白耗费时间。于是选择了Leetcode这个平台来刷题库。编程我只学过基础的C语言,现在在自学Python,所以用Python3.8刷题库。现在我Python掌握的还不是很熟练,算法什么的也还没学,就先不考虑算法上的优化了,单纯以解题为目的,复杂程度什么的以后有时间再优化。计划顺序五个题写一篇日志,希望其他初学编程的人起到一些帮助,写算是对自己学习历程的一个见证了吧。

有一起刷LeetCode的可以关注我一下,我会一直发LeetCode题库Python3解法的,也可以一起探讨。

觉得有用的话可以点赞关注下哦,谢谢大家!

········································································································································································

题解框架:

1.题目,难度

2.题干,题目描述

3.题解代码(Python3(不是Python,是Python3))

4.或许有用的知识点(不一定有)

5.解题思路

6.优解代码及分析(当我发现有比我写的好很多的代码和思路我就会写在这里)

········································································································································································

No.31.下一个排列

难度:中等

题目描述:

在这里插入图片描述

题解代码(Python3.8)

class Solution:

def nextPermutation(self, nums: List[int]) -> None:

flag=0

l=len(nums)

if l>=2:

for i in range(l-2,-1,-1):

if nums[i]

flag=1

break

for j in range(l-1,i,-1):

if nums[j]>nums[i]:

nums[i],nums[j]=nums[j],nums[i]

nums[i+1:l]=nums[l-1:i:-1]

break

if flag==0:

nums.sort()

解题思路:

这个题用到的知识并不难,难就难在读题和思考写法。

这道题的题目每个字都能看懂,但第一遍连起来看却很难明白,其实这道题可以形象化的描述为&#x

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值