这是悦乐书的第300次更新,第319篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第168题(顺位题号是707).设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针/引用.如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点.假设链表中的所有节点都是 0-index 的.在链表类中实现这些功能: get(index):获取链表中第 index…
这是悦乐书的第256次更新,第269篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第123题(顺位题号是541).给定一个字符串和一个整数k,你需要反转从字符串开头算起的每2k个字符的前k个字符. 如果剩下少于k个字符,则反转所有字符. 如果小于2k但大于等于k个字符,则反转前k个字符,剩下的字符不变.例如: 输入:s ="abcdefg",k = 2 输出:"bacdfeg" 注意: 该字符串仅包含小写的英文字母. 给定字符串的长度和…
这是悦乐书的第254次更新,第267篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第121题(顺位题号是532).给定一个整数数组和一个整数k,您需要找到数组中唯一的k-diff对的数量. 这里k-diff对被定义为整数对(i,j),其中i和j都是数组中的数字,它们的绝对差是k.例如: 输入:[3,1,4,1,5],k = 2 输出:2 说明:数组中有两个2-diff对,(1,3)和(3,5).虽然我们在输入中有两个1,但我们应该只返回唯一对的数量. 输入:[1,2…
这是悦乐书的第210次更新,第222篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第78题(顺位题号是371).计算两个整数a和b的总和,但不允许使用运算符+和 - .例如: 输入:a = 1,b = 2 输出:3 输入:a = -2,b = 3 输出:1 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02 第一种解法 借助循环来实现.先将a赋值给临时变量sum,然后判断b的正负,如果b大…
这是悦乐书的第193次更新,第198篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第54题(顺位题号是225).使用队列实现栈的以下操作: push(x) - 将元素x推入栈. pop() - 删除栈顶部的元素. top() - 获取顶部元素. empty() - 返回栈是否为空. 例如: MyStack stack = new MyStack(); stack.push(1); stack.push(2); stack.top(); //返回2 stack.pop…
这是悦乐书的第172次更新,第174篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第31题(顺位题号是121).假设有一个数组,其中第i个元素是第i天给定股票的价格.如果只被允许完成最多一笔交易(即买入并卖出一股股票),请设计算法以找到最大利润.请注意,在购买之前不能出售股票.例如: 输入:[7,1,5,3,6,4] 输出:5 说明:在第2天买入(价格= 1)并在第5天卖出(价格= 6),利润= 6-1 = 5.不是7-1 = 6,因为售价需要大于购买价格. 输入:…
这是悦乐书的第160次更新,第162篇原创 01 前情回顾 昨晚的爬楼梯算法题,有位朋友提了个思路,使用动态规划算法.介于篇幅问题,这里不细说动态规划算法,以后会在数据机构和算法的理论知识里细说. 昨晚的三个解法中,根据测试数据和结果,第三种解法是最优的,但是还能不能更进一步呢?经过推导,我们得知当n大于等于3的时候,f(n) = f(n-1)+f(n-2),也就是说我们只需要得到n的前面两位的结果即可,对此我们使用了数组,将每个值都存起来了,最后取出数组中的最后一位元素.那么是否可以将数组也省…
这是悦乐书的第156次更新,第158篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第15题(顺位题号是66).给定一个非空数字数组来表示一个非负整数,并给其加1.该数组已经排序,并且最高位有效数字位于数组的开头,并且数组中的每个元素都表示单个数字.假设该整数不以零开头,除了数字0本身.例如: 输入:[1,2,3] 输出:[1,2,4] 说明:数组表示整数123 输入:[4,3,2,1] 输出:[4,3,2,2] 说明:数组表示整数4321 本次解题使用的开发工具是e…
这是悦乐书的第144次更新,第146篇原创 今天这道题和回文有关,即从前往后和从后往前是一样的,如"上海自来水来自海上"就是一个回文字符串,如整数121就是回文数,这些都是和回文相关的. 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第3题(顺位题号是9),给定一个整数,判断其是否为回文整数,即向前读和向后读的整数一样. 输入: 121 输出: true 输入: -121 输出: false 说明:从左到右读为-121.从右到左读为121-.因此它不是回文. 输入…
这是悦乐书的第143次更新,第145篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第2题(顺位题号是7),给定32位有符号整数,然后将其反转输出.例如: 输入: 123 输出: 321 输入: -123 输出: -321 输入: 120 输出: 21 给定反转整数范围: [−2^31, 2^31 − 1],即在int的最小值.最大值之间,如果反转整数超过此范围,则返回0. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,…