这是悦乐书的第302次更新,第321篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第170题(顺位题号是717)。有两个特殊字符,第一个字符可以用一个比特0表示,第二个字符可以用两个比特(10或11)表示。现在给出一个由比特位组成的数组,判断其最后一个字符是否是一位字符。数组的最后一位始终是比特0。例如: 输入:bits = [1,0,0] 输出:true 说明:解码它的唯一方法是两位字符和一位字符,所以最后一个字符是一位字...
这是悦乐书的第301次更新,第320篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第169题(顺位题号是709)。实现具有字符串参数str的函数ToLowerCase():以小写形式返回相同的字符串。例如: 输入:“Hello” 输出:“hello” 输入:“here” 输出:“here” 输入:“LOVELY” 输出:“lovely” 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。02 解题 题目的意...
二分查找基本格式 算法要点: (1)从中间位置开始,如果正好是要查找的元素或满足的条件,则搜素过程结束,这意味着你要有一个return或break的操作; (2)如果不是,每一次比较都使搜索范围缩小一半,这意味着你要改变搜索的left和right。 废话少说,直接看一下二分查找的基本写法,以while 写法为例,需要注意(1)循环的条件带等号,(2)mid 计算的这个写法,是防止(lt +rt) 数值溢出,有的网上的题目发生过这种情况,其实一般...
这是悦乐书的第290次更新,第308篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第158题(顺位题号是687)。给定二叉树,找到路径中每个节点具有相同值的最长路径的长度。此路径可能会也可能不会通过根目录。例如: 输入:5/ 4 5/ \ 1 1 5 输出:路径为[5,5,5],边长为2输入:1/ 4 5/ \ 4 4 5 输出:路径为[4,4,4],边长为2注意:两个节点之间的路径长度...
【题目描述】【代码思路】 解读题干其实就是要求一个整数的所有因数,重点有两个: 1.输入数字为num,循环的判断条件是i*i<=num,这样就能避免重复计算,这很巧妙值得理解和记忆。 2.sum初始值为1,i的初始值为2,这样就可以避免把num自身加上了,不用在循环中每次都判断 【源代码】class Solution { public:bool checkPerfectNumber(int num) {if(num==0||num==1) return false;int sum=1;for(int i=2;i*i<=num;i++){if(num%i==0) ...
这是悦乐书的第285次更新,第302篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第153题(顺位题号是671)。给定非空的特殊二叉树,其由具有非负值的节点组成,其中该树中的每个节点具有恰好两个或零个子节点。 如果节点具有两个子节点,则该节点的值是其两个子节点中的较小值。给定这样的二叉树,您需要输出由整个树中所有节点的值组成的集合中的第二个最小值。如果不存在这样的第二个最小值,则输出-1。例如:2/ \2...
【刷题】【LeetCode】总 用动画的形式呈现解LeetCode题目的思路 参考链接 000-十大经典排序算法
这是悦乐书的第282次更新,第299篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第150题(顺位题号是661)。给定表示图像灰度的2D整数矩阵M,您需要设计一个平滑器以使每个单元的灰度变为所有8个周围单元及其自身的平均灰度(向下舍入)。如果一个单元的周围单元少于8个,那么尽可能多地使用单元。例如: 输入:[[1,1,1],[1,0,1][1,1,1]] 输出:[[0,0,0],[0,0,0],[0,0,0]] 说明: 对于点(0,0),(0,2),(2,0)...
Letter Combinations of a Phone Number Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below.Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].Note:Although the above answer is in lexicographical order, your answer could be in any order you ...
这是悦乐书的第277次更新,第293篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第145题(顺位题号是637)。给定一个非空二叉树,以数组的形式返回每一层节点值之和的平均值。例如:3/ 9 20/ 15 7 输出:[3,14.5,11] 说明:第一层上的节点的平均值为3,第二层上的节点的平均值为14.5,第三层上的节点的平均值为11.因此返回[3,14.5,11]。 注意:节点值的范围在32位有符号整数的范围内。 本次解题使用的开发工具...
这是悦乐书的第276次更新,第292篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第144题(顺位题号是633)。给定一个非负整数c,判断是否存在两个整数a和b,使得a的平方与b的平方之和等于c。例如: 输入:5 输出:true 说明:1 x 1 + 2 x 2 = 5 输入:3 输出:false 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。02 第一种解法 暴力解法,直接使用两层for循环...
假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。 示例 1:输入: flowerbed = [1,0,0,0,1], n = 1 输出: True 示例 2:输入: flowerbed = [1,0,0,0,1], n = 2 输出: False 代码...
这是悦乐书的第272次更新,第286篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第139题(顺位题号是599)。假设Andy和Doris想要选择一家餐馆吃晚餐,他们都有一个最受欢迎的餐馆列表。你需要用最少的列表索引总和帮助他们找出他们的共同兴趣。如果答案之间存在选择关系,则输出所有答案并且没有顺序要求。你可以假设总有一个答案。例如: 输入: ["Shogun", "Tapioca Express", "Burger King", "KFC"] ["Piatti", "Th...
只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。class Solution { public:int singleNumber(vector<int>& nums) {int x = 0;for (auto ite : nums)x ^= ite;return x;} }; 说明:采用异或,0与任何数异或得到数字本身 两个相同的数字异或等于0 不用去考虑是不是按顺序从可变数组中取元素 如过我们的测试数据是 {0,1,2,1,0} 机器会 都转化成2进制码 ...
题目: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。示例 2: 输入: “cbbd” 输出: “bb”解决方案 暴力解法 思路 暴力法将选出所有子字符串可能的开始和结束位置,并检验它是不是回文。 【基本思路】构架一个HashMap存储<字符,索引>,对字符串从头到尾遍历一遍,不在Map里的字符存进去,在的话比较上一次出现的位置,...