草庐IT

leetCode

全部标签

Java---打家劫舍ⅠⅡ

目录打家劫舍Ⅰ题目分析 代码一 代码二打家劫舍Ⅱ  打家劫舍Ⅰ你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。 输入:[2,7,9,3,1]输出:12解释:偷窃1号房屋(金额=2),偷窃3号房屋(金额=9),接着偷窃5号房屋(金额=1)。   偷窃到的最高金额=2+9+1=12。题目分析 nums27931R27+09+23+71+11NR0271111 R

【Leetcode】移除链表元素 链表的中间节点 链表中倒数第k个节点

目录一.【Leetcode203】移除链表元素1.链接2.题目再现 A.双指针法B.类尾删法C.哨兵位二.【Leetcode876】链表的中间节点1.链接:链表的中间节点2.题目再现3.解法:快慢指针三.链表中倒数第k个节点1.链接:链表中倒数第k个节点2.题目再现3.解法:快慢指针一.【Leetcode203】移除链表元素1.链接移除链表元素2.题目再现 A.双指针法1.创建一个指针cur=head 和一个指针 pre=NULL;  2.用cur->val与val比较,如果不相等则把cur赋给pre使cur指向下一个节点,即  cur=cur->next;3.如果相等则使pre的next指向

【Leetcode】移除链表元素 链表的中间节点 链表中倒数第k个节点

目录一.【Leetcode203】移除链表元素1.链接2.题目再现 A.双指针法B.类尾删法C.哨兵位二.【Leetcode876】链表的中间节点1.链接:链表的中间节点2.题目再现3.解法:快慢指针三.链表中倒数第k个节点1.链接:链表中倒数第k个节点2.题目再现3.解法:快慢指针一.【Leetcode203】移除链表元素1.链接移除链表元素2.题目再现 A.双指针法1.创建一个指针cur=head 和一个指针 pre=NULL;  2.用cur->val与val比较,如果不相等则把cur赋给pre使cur指向下一个节点,即  cur=cur->next;3.如果相等则使pre的next指向

2022-08-20-网易笔试题

写在前面题目收集来源自网络,前四题是开发岗的,后四题是算法岗的,因为代码无处提交,不一定正确,就不贴出来了,这里只写一下我的思路吧~欢迎大家一起讨论~~1、 思路:因为最大1e9,也就是最多10位数字。且操作只跟结果有关,跟过程无关,因此可以对a和b分别二进制枚举删除的数字,这样a有2^10个可能性,b有2^10个可能性,然后暴力取操作次数的min就可以了。时间复杂度O(2^10^2),正常写的话可能带个log,但是不难通过一些方法优化掉。2、 思路:分析题意不难发现,奇数位置一定是同一个数字,偶数位置一定是同一个数字,且操作只能+1,不能-1。所以分别加到奇数偶数分别的max就可以了。3、 

2022-08-20-网易笔试题

写在前面题目收集来源自网络,前四题是开发岗的,后四题是算法岗的,因为代码无处提交,不一定正确,就不贴出来了,这里只写一下我的思路吧~欢迎大家一起讨论~~1、 思路:因为最大1e9,也就是最多10位数字。且操作只跟结果有关,跟过程无关,因此可以对a和b分别二进制枚举删除的数字,这样a有2^10个可能性,b有2^10个可能性,然后暴力取操作次数的min就可以了。时间复杂度O(2^10^2),正常写的话可能带个log,但是不难通过一些方法优化掉。2、 思路:分析题意不难发现,奇数位置一定是同一个数字,偶数位置一定是同一个数字,且操作只能+1,不能-1。所以分别加到奇数偶数分别的max就可以了。3、 

算法leetcode|29. 两数相除(rust重拳出击)

文章目录29.两数相除:样例1:样例2:提示:分析:题解:rustgoc++cpythonjava29.两数相除:给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和mod运算符。返回被除数dividend除以除数divisor得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345)=8以及truncate(-2.7335)=-2样例1:输入: dividend=10,divisor=3 输出: 3 解释: 10/3=truncate(3.33333..)=truncate(3)=3样例2:输入: divide

算法leetcode|29. 两数相除(rust重拳出击)

文章目录29.两数相除:样例1:样例2:提示:分析:题解:rustgoc++cpythonjava29.两数相除:给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和mod运算符。返回被除数dividend除以除数divisor得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345)=8以及truncate(-2.7335)=-2样例1:输入: dividend=10,divisor=3 输出: 3 解释: 10/3=truncate(3.33333..)=truncate(3)=3样例2:输入: divide

Leetcode动态规划专题(共38道)

某一问题有很多重叠子问题每一状态一定由上一状态推导出来而贪心没有状态推导,而是直接选局部最优解决方式:确定dp数组(dptable)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组模拟:举例推导dp数组检查:打印dp数组1.Leetcode509.斐波那契数classSolution{public:intfib(intn){//第i个数的值vectornum(n+2,0);//初始化num[0]=0;num[1]=1;//确定遍历顺序for(inti=2;i递归写法classSolution{public:intfib(intn){if(n2.Leetcode70.爬楼

Leetcode动态规划专题(共38道)

某一问题有很多重叠子问题每一状态一定由上一状态推导出来而贪心没有状态推导,而是直接选局部最优解决方式:确定dp数组(dptable)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组模拟:举例推导dp数组检查:打印dp数组1.Leetcode509.斐波那契数classSolution{public:intfib(intn){//第i个数的值vectornum(n+2,0);//初始化num[0]=0;num[1]=1;//确定遍历顺序for(inti=2;i递归写法classSolution{public:intfib(intn){if(n2.Leetcode70.爬楼

Leetcode Practice --- 栈和队列

目录155.最小栈思路解析20.有效的括号思路解析1047.删除字符串中的所有相邻重复项思路解析1209.删除字符串中的所有相邻重复项II思路解析删除字符串中出现次数>=2次的相邻字符剑指Offer09.用两个栈实现队列239.滑动窗口最大值思路解析155.最小栈设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。voidpush(intval)将元素val推入堆栈。voidpop()删除堆栈顶部的元素。inttop()获取堆栈顶部的元素。intgetMin()获取堆栈中的最小元素。提示:\(-2^{31}\