首页 > 其他分享 >[Leetcode]Top 150

[Leetcode]Top 150

时间:2024-07-04 10:54:44浏览次数:19  
标签:150 head cur int Top next 链表 key Leetcode

链表

旋转链表

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
        # 首先判断头节点是不是为空,或者整个链表只有一个节点
        if not head or not head.next:
            return head

        # 计算链表长度
        cur = head
        count = 1
        while cur.next:
            count += 1
            cur = cur.next

        # 首尾相连
        cur.next = head

        # 从count-k处断开连接
        k = k % count
        cur = head
        for _ in range(count - k - 1):
            cur = cur.next

        res = cur.next
        cur.next = None

        return res

LRU 缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。
实现 LRUCache 类:
LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存
int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。
void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字。
函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。

标签:150,head,cur,int,Top,next,链表,key,Leetcode
From: https://www.cnblogs.com/DCFV/p/18283139

相关文章

  • Docker top和stats区别
    dockertop需要指定容器,且不是动态显示容器资源使用情况dockerstats动态打印所有容器资源使用情况[root@localhost~]#dockertop--helpUsage:dockertopCONTAINER[psOPTIONS]DisplaytherunningprocessesofacontainerAliases:dockercontainertop,do......
  • 每日一题:Leetcode-102 二叉树的层序遍历
    力扣题目解题思路java代码力扣题目:给你二叉树的根节点 root ,返回其节点值的 层序遍历 。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root=[]输出:[]......
  • 【LeetCode 0232】【设计】用FILO栈实现FIFO队列
    ImplementQueueusingStacksImplementafirstinfirstout(FIFO)queueusingonlytwostacks.Theimplementedqueueshouldsupportallthefunctionsofanormalqueue(push,peek,pop,andempty).ImplementtheMyQueueclass:*voidpush(intx)Pushes......
  • Tableau Desktop文件夹功能的使用,及个人公式规范
        1.前言        大家好啊,今天想聊一个Tableau一个小功能的个人使用心得,那就是文件夹。以及交流下我日常项目中对这个功能的使用情况。       这个小功能看似不起眼,貌似只是TableauDesktop诸多功能中比较阿卡林的一个,很多朋友尤其是刚开始接触Tabl......
  • LeetCode 算法:路径总和 III c++
    原题链接......
  • 用WSL2+Docker Desktop部署InLong的坑和经验
    WSL的网络坑死了————题记看到腾讯在搞开源,邂逅了ApacheInLong,觉得很有意思,就开始研究。考虑到这是和性能有关的东西,以后说不定还要压测什么的,所以就决定用WSL2+DockerDesktop,不用虚拟机了,感觉这样性能会好一点,正好也熟悉熟悉命令行,毕竟打CTF虽然天天用Linux但基本能用GU......
  • 【LeetCode】力扣刷题记录第五天
    第五天!第一题:LeetCode1720 首先,我们先来读懂题目什么意思:encoded[i]=arr[i]XORarr[i+1]输入:encoded=[1,2,3],first=1输出:[1,0,2,1]解释:若arr=[1,0,2,1],那么first=1且encoded=[1XOR0,0XOR2,2XOR1]=[1,2,3]encode[i-1]=arr[i-1]XORarr[i......
  • [LeetCode] 45. Jump Game II
    有点意思,需要动态规划。fromtypingimportListfromcollectionsimportCounterimporttimeclassSolution:defjump(self,nums:List[int])->int:max_reachable=0min_steps=0fori,elementinenumerate(nums):i......
  • Leetcode秋招冲刺(专题13--15)
    专题13:广度优先搜索题目559:N叉树的最大深度(YES)解题思路:使用广度优先搜索,广度优先搜索的核心就是使用队列queue存储每个根节点,然后再存储孩子节点。给定一个N叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N叉树输入按层序遍历序......
  • [LeetCode] 55. Jump Game
    写了一个符和直觉的递归,时间超限了。fromtypingimportListimporttimeclassSolution:defcanJump(self,nums:List[int])->bool:iflen(nums)==1:returnTruereturnself.isreach(nums,0)defisreach(self,nums:List[i......