摘要:
1.1题目 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例: 示例: 1.2解答 这种问题一看就知道使用动态规划,子问题也很好找,将一个数分为两部分,要么两个部分都不可分了,要么一个可分,一个不可分。两个都可分的情况可以改成一个可分,一 阅读全文
摘要:
1.1概述 HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null键和null值, 因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不能相同。HashMap是线程不安全的。 #1.2详解 在jdk1.7中H 阅读全文
摘要:
1.1概述 在使用HashMap的时候,可能会遇到需要按照当时put的顺序来进行哈希表的遍历。通过上篇对HashMap的了解,我们知道HashMap中不存在保存顺序的机制。本篇文章要介绍的LinkedHashMap专为此特性而生。在LinkedHashMap中可以保持两种顺序,分别是插入顺序和访问顺 阅读全文
摘要:
#1.1题目 题中给出一个 n_rows 行 n_cols 列的二维矩阵,且所有值被初始化为 0。要求编写一个 flip 函数,均匀随机的将矩阵中的 0 变为 1,并返回该值的位置下标 [row_id,col_id];同样编写一个 reset 函数,将所有的值都重新置为 0。尽量最少调用随机函数 M 阅读全文
摘要:
1.1题目 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。 1.2解答 很显然是二叉树的遍历问题。遍历每个点然后返回当前点的深 阅读全文
摘要:
1.1题目 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 ⇐100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新 阅读全文
摘要:
1.1题目 给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例1: 示例2: 1.2解答 很显然只能将所有情况完全遍历一次,将以任意一点为起点的情况全部遍历完,也就是对每个点进行深度优先搜索。 阅读全文
摘要:
1.1题目描述 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n) 示例:nums = [7,2,5,10,8] 阅读全文
摘要:
1.1题目 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: #1.2解答 最开始我是想到将1..n分别作为根节点,其左右的数就是左右子树,那么以n为根节点的树的种类数就等于左子树种类数乘右子树种类数,只需要一个递归调用就能解决问题。然后就是通过构建备忘录表实现空间复 阅读全文
摘要:
1.1题目描述 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:选出任一 x,满足 0 < x < N 且 N % x == 0 。用 N - x 替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝 阅读全文