0x3f 第49天 面向实习的八股背诵第六天 过了一遍JVM的知识点,看了相关视频讲解JVM内存,垃圾清理,买了plus,稍微看了点确定一下方向

1.划分字母区间

就是跳跃游戏Ⅱ,只不过把最远跳跃的距离改成了字母最后一次出现的位置

关键参数start:作用仅限于记录区间长度

last{}字典:记录每个字母出现的最后位置,最核心的参数

end:记录当前区间里的节点能走到的最远距离

复制代码
class Solution:
    def partitionLabels(self, s: str) -> List[int]:
        last = {}
        for i,c in enumerate(s):
            last[c] = i
        ans = []
        start = end = 0
        for i,c in enumerate(s):
            end = max(end,last[c])
            if i==end:
                ans.append(end-start+1)
                start = i+1
        return ans

2.下一个排列

倒序遍历,找到比当前大的最小的,交换,排序后面的,返回

复制代码
class Solution:
    def nextPermutation(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        #最核心的一步,如果54321反转整个数,这也就代表着,只要能从右向左,
        
        #找到第一个右边大于左边的数,54312,就可以改成54321   ,   54213,改成54231 
        n = len(nums)
        i=n-2
        while i>=0 and nums[i]>=nums[i+1]:
            i-=1
        #如果13542,找到了3,并且可以证明3右边是递减,要找到大于3且最小的就是4,34交换得到,14532,再把剩下的反转
        if i>=0:
            j=n-1
            while nums[j]<=nums[i]:
                j-=1
            nums[i],nums[j]=nums[j],nums[i]

        left,right = i+1,n-1
        while left<right:
            nums[left],nums[right] = nums[right],nums[left]
            left+=1
            right-=1

3.颜色分类

借用一个用户:

"微尘"的理解:

来个直观的

22222222222 先全变成2

11111122222 再变成1

00011122222 再变成0
num[i] = 2在所有循环内都会执行,所以从结果看是先全变成2,

然后nums[p1]=1在所有<=1的情况下都会执行,所以从结果看是2中部分替换为1

同理0就是在2的1中部分替换为0.没问题

很形象

复制代码
class Solution:
    def sortColors(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        p0 = p1= 0
        for i,x in enumerate(nums):
            nums[i]=2
            if x<=1:
                nums[p1]=1
                p1+=1
            if x==0:
                nums[p0]=0
                p0+=1
相关推荐
微学AI18 小时前
Claude-Code-python 前端改造项目工作流程详解
开发语言·前端·python
m0_4954964118 小时前
C#怎么操作音频文件 C#如何用NAudio播放录制和处理WAV MP3音频文件【工具】
jvm·数据库·python
WL_Aurora18 小时前
Python 算法基础篇之什么是算法
python·算法
乐世东方客18 小时前
Nacos-2.1.0问题-自己记录
开发语言·python
墨染天姬18 小时前
[AI]DeepSeek-R1的GRPO算法
人工智能·算法·php
D_C_tyu18 小时前
JavaScript | 数独游戏核心算法实现
javascript·算法·游戏
qiqsevenqiqiqiqi18 小时前
MT2048三连 暴力→数学推导→O (n) 优化
数据结构·c++·算法
AI技术增长18 小时前
Pytorch图像去噪实战(二):用UNet解决DnCNN细节丢失问题(结构解析+完整代码+踩坑总结)
人工智能·pytorch·python
码之气三段.18 小时前
十五届山东ccpc省赛补题(update)
数据结构·c++·算法
dFObBIMmai19 小时前
CSS如何检测页面浮动元素位置_使用审查工具与clear
jvm·数据库·python