一.匿名函数 以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数. 课上练习: # 正常函数: def func(a, b): return a + b print(func(4, 6)) # 10 # 匿名函数: func = lambda a, b: a + b print(func(11, 33)) # 44 # 写匿名函数:接收一个可切片的数据,返回索引为0与2的对应的元素(元组形式). func = lambda x: (x[0], x[2]) print(func('Dy…
263. Ugly Number 注意:1.小于等于0都不属于丑数 2.while循环的判断不是num >= 0, 而是能被2 .3.5整除,即能被整除才去除这些数 class Solution { public: bool isUgly(int num) { ) return false; == ) num /= ; == ) num /= ; == ) num /= ; ? true : false; } }; 264. Ugly Number II 用一个数组去存第n个前面的所有整数,然后…
344. Reverse String 最基础的旋转字符串 class Solution { public: void reverseString(vector<char>& s) { if(s.empty()) return; ; ; while(start < end){ char tmp = s[end]; s[end] = s[start]; s[start] = tmp; start++; end--; } return; } }; 541. Reverse Strin…
House Robber:不能相邻,求能获得的最大值 House Robber II:不能相邻且第一个和最后一个不能同时取,求能获得的最大值 House Robber III:二叉树下的不能相邻,求能获得的最大值 Paint House:用3种颜色,相邻的房屋不能用同一种颜色,求花费最小 Paint House II:用k种颜色,相邻的房屋不能用同一种颜色,求花费最小Paint Fence:用k种颜色,相邻的可以用同一种颜色,但不能超过连续的2个,求有多少种可能性 198. House Robb…
136. Single Number 除了一个数字,其他数字都出现了两遍. 用亦或解决,亦或的特点:1.相同的数结果为0,不同的数结果为1 2.与自己亦或为0,与0亦或为原来的数 class Solution { public: int singleNumber(vector<int>& nums) { if(nums.empty()) ; ; ;i < nums.size();i++) res ^= nums[i]; return res; } }; 137. Single N…
787. The Maze https://www.cnblogs.com/grandyang/p/6381458.html 与number of island不一样,递归的函数返回值是bool,不是void. maze = -1用来表示已经访问的节点. dp用来记录每个位置的是否能访问,如果dp != -1,就表示这个地方已经访问过了,可以避免多余的访问. 一直滑动用while循环来做,这里并没有没移动一次就增加一个访问. int x = i,y = j必须这样写,因为之后的4种迭代都是从i.…
第一题344.反转字符串 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. ψ(`∇´)ψ 我的思路 取到字符串的中点,依次交换前后两部分的位置 package string; public class ReverseString { public static void reverseString(char[] s) { char temp; for (int…
总述 全部用DFS来做 重点一:参数的设置:为Root,路径字符串,路径List集合. 重点二:步骤: 1 节点为null 2 所有节点的操作 3 叶子结点的操作 4 非叶节点的操作 题目257. 二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径. 例:输出: ["1->2->5", "1->3"] 代码 class Solution { public List<String> binaryTreePaths(Tree…
112. Path Sum 自己的一个错误写法: class Solution { public: bool hasPathSum(TreeNode* root, int sum) { if(root == NULL) return false; ; return hasPathSum(root,sum,value); } bool hasPathSum(TreeNode* root,int sum,int value){ if(root == NULL){ if(value == sum) r…
首先要说明二叉树的问题就是用递归来做,基本没有其他方法,因为这数据结构基本只能用递归遍历,不要把事情想复杂了. #112 Path Sum 原题链接:https://leetcode.com/problems/path-sum/ . 判断从树的根节点到叶子节点的路径中,是否有一条所有节点上的值之和和特定的数字,即sum. 从根节点到叶子节点,线路的起点的是固定的,只需要不断递归下去,判断在叶子节点处是否满足根节点加到该节点的值之和为sum. 这个限制条件把这个问题简化了很多很多. /** * D…