草庐IT

LeetCode_day

全部标签

算法记录 | Day45 动态规划

70.爬楼梯(进阶)改为:一步一个台阶,两个台阶,三个台阶,…,直到m个台阶。问有多少种不同的方法可以爬到楼顶呢?1阶,2阶,…m阶就是物品,楼顶就是背包。每一阶可以重复使用,例如跳了1阶,还可以继续跳1阶。问跳到楼顶有几种方法其实就是问装满背包有几种方法。此时大家应该发现这就是一个完全背包问题了!1.确定dp数组以及下标的含义:dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法。2.确定递推公式:dp[i]+=dp[i-j]dp[i]有几种来源,dp[i-1],dp[i-2],dp[i-3]等等,即:dp[i-j]3.dp数组如何初始化:dp[0]=14.确定遍历顺序:这是背包里求排列问题

day-01 Docker

一、docker简介        Docker是一种开源的容器化平台,它可以帮助开发人员将应用程序及其依赖项打包成一个独立的、可移植的容器,而无需担心环境差异和依赖问题。通过使用Docker,您可以更轻松地创建、分发和运行应用程序,无论是在开发、测试还是生产环境中。        Docker利用了Linux内核的特性,如cgroups和命名空间,来提供轻量级、隔离和可移植的容器。每个容器都是一个独立的运行时环境,具有自己的文件系统、进程空间和网络接口。这使得多个容器可以在同一台主机上同时运行,而互相之间不会产生冲突。        使用Docker,我们可以通过Docker镜像来定义应用程

算法leetcode|75. 颜色分类(rust重拳出击)

文章目录75.颜色分类:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:75.颜色分类:给定一个包含红色、白色和蓝色、共n个元素的数组nums,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数0、1和2分别表示红色、白色和蓝色。必须在不使用库内置的sort函数的情况下解决这个问题。样例1:输入: nums=[2,0,2,1,1,0] 输出: [0,0,1,1,2,2]样例2:输入: nums=[2,0,1] 输出: [0,1,2]提示:n==nums.length1nums[i]为0、1或2分析:面对这道算法题目

java - leetcode 单数 II

leetcode关于单数II的题目是:给定一个整数数组,除一个元素外,每个元素出现三次。找到那一个。笔记:您的算法应该具有线性运行时复杂度。你能在不使用额外内存的情况下实现它吗?其实我已经从网站上找到了解决方案,解决方案是:publicintsingleNumber(int[]A){intone=0,two=0;for(inti=0;i但是,我不知道为什么这段代码可以运行,其实我也不知道我第一次看到这个问题的时候是怎么想的?任何帮助。谢谢! 最佳答案 所以,我遇到了一些编码问题并在这个问题上坚持了很长一段时间,在对谷歌进行了大量研究

操作系统备考学习 day1 (1.1.1-1.3.1)

操作系统备考学习day1计算机系统概述操作系统的基本概念操作系统的概念、功能和目标操作系统的四个特征并发共享虚拟异步操作系统的发展和分类操作系统的运行环境操作系统的运行机制年初做了一个c++的webserver的项目,在学习过程中已经解除部分操作系统的知识,在已接触熟识的部分,可能会有所跳过计算机系统概述操作系统的基本概念操作系统的概念、功能和目标操作系统的定义:操作系统(OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。操作系统是系统资源的管理者补充知识:执行一个程序前需要将

每天一道leetcode:1926. 迷宫中离入口最近的出口(图论&中等&广度优先遍历)

今日份题目:给你一个mxn的迷宫矩阵maze(下标从0开始),矩阵中有空格子(用'.'表示)和墙(用'+'表示)。同时给你迷宫的入口entrance,用entrance=[entrancerow,entrancecol]表示你一开始所在格子的行和列。每一步操作,你可以往上,下,左或者右移动一个格子。你不能进入墙所在的格子,你也不能离开迷宫。你的目标是找到离entrance最近的出口。出口的含义是maze边界上的空格子。entrance格子不算出口。请你返回从entrance到最近出口的最短路径的步数,如果不存在这样的路径,请你返回-1。示例1输入:maze=[["+","+",".","+"]

每天一道leetcode:797. 所有可能的路径(图论&中等&深度优先遍历)

今日份题目:给你一个有n个节点的有向无环图(DAG),请你找出所有从节点0到节点n-1的路径并输出(不要求按特定顺序)graph[i]是一个从节点i可以访问的所有节点的列表(即从节点i到节点graph[i][j]存在一条有向边)。示例1输入:graph=[[1,2],[3],[3],[]]输出:[[0,1,3],[0,2,3]]解释:有两条路径0->1->3和0->2->3示例2输入:graph=[[4,3,1],[3,2,4],[3],[4],[]]输出:[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]提示n==graph.length20graph

java - Joda Time LocalTime of 24 :00 end-of-day

我们正在创建一个日程安排应用程序,我们需要表示某人在一天中的可用日程安排,而不管他们在哪个时区。从JodaTime的Interval中得到启发,它表示两个实例之间的绝对时间间隔(开始包含,结束排除),我们创建了一个LocalInterval。LocalInterval由两个LocalTimes组成(开始包含,结束不包含),我们甚至制作了一个方便的类来将其保存在Hibernate中。例如,如果有人在下午1:00到5:00有空,我们将创建:newLocalInterval(newLocalTime(13,0),newLocalTime(17,0));到目前为止一切顺利---直到有人希望在某

Day10|LeetCode232.用栈实现队列、LeetCode 225. 用队列实现栈

栈和队列理论基础:队列是先进先出,栈是先进后出。如图所示:栈和队列是STL(C++标准库)里面的两个数据结构。栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。 栈的内部结构,栈的底层实现可以是vector,deque,list都是可以的,主要就是数组和链表的底层实现。如图所示:我们常用的SGISTL,如果没有指定底层实现的话,默认是以deque为缺省情况下栈的底层结构。  LeetCode232.用栈实现队列题目链接:232.用栈实现队列-力扣(LeetCode)视频链接:栈的基本操作!|LeetCode:232.用栈实

Leetcode.322-零钱兑换(最大/小型动态规划)

322.零钱兑换目录第一步:确定状态第二步:确定初始状态和边界条件第三步:计算顺序递归的计算问题代码思路动态规划适用于:最大/小值,可不可行,计数问题这类集中场景本题,求解是否可以由指定面值的硬币完成兑换且统计最少需要的硬币的数量,可以使用动态规划来求解。动态规划 -子问题状态的定义 -状态转移方程 -整个问题的初始状态 -问题的边界条件第一步:确定状态动态规划是可以将大问题分解成子问题,利用子问题的结果来求解大问题,所以首先要确定状态。要从问题的最后一步和子问题的角度开始思考如果能完全找零,那么假设最后一个找零的硬币的面值为k,则问题由找出11金额的最少硬币数量的问题,变成找出11-k的最少