04 2017 档案
摘要:链接 "383. Ransom Note" 题意 给定两个字符串,第一个字符串如果是第二个字符串的子集(这里子集的意思是只要有对应的字母即可,与字母和数量有关,与顺序无关),那么返回true,否则false。 思路 1. 将两个字符串转为字符数组 2. 将magazine字符串中的字母转为ASCII
阅读全文
摘要:链接 "167. Two Sum II Input array is sorted" 题意 给定一个升序的整型数组,其中有两个元素的和为指定的数,找到这两个元素的下标。注意只有唯一解。 思路 利用双指针,从两端到中间扫描。 1. 如果相加恰好为target,则直接返回。 2. 如果相加小于targe
阅读全文
摘要:链接 "506. Relative Ranks" 题意 给定N个运动员的成绩,输出他们对应的排名。前三名输出格式为:"Gold Medal", "Silver Medal", "Bronze Medal",其他成绩输出名次即可。 思路 1. 拷贝一份数组 2. 将数组的值和下标最为key和value
阅读全文
摘要:链接 "283. Move Zeroes" 题意 给定一个数组,将其中所有的零移动至数组末尾,而非零数字的相对位置保持不变。 要求: 1. 就地移动 2. 操作数最少 思路 方法1:先找到所有0的个数,然后直接将数组中非0元素一个一个插入,再根据0的个数补齐数组。 方法2:来自讨论区,发现根本不需要
阅读全文
摘要:链接 "492. Construct the Rectangle" 题意 给出面积,算出符合以下条件的整数长L和宽W: 1. 面积 = 长 宽 2. L ≥ W 3. L和W之差尽可能小 思路 为了满足条件,对面积开根号即可,但L和W为整数。因此先让W为面积开根号向下取整,再逐步自减,直到找到满足条
阅读全文
摘要:链接 "258. Add Digits" 题意 给定一个非负整数,反复做如下操作:将它的各位数相加得到一个值,若该值位数仍大于1,重复以上操作,直到位数为1。 思路 模拟即可 代码 Java: 效率 Your runtime beats 28.76 % of java submissions
阅读全文
摘要:链接 "521. Longest Uncommon Subsequence I" 题意 给定两个字符串,找出最长非公共子序列。该非公共子序列是其中一个字符串的子序列(可以是它自身)而不是另外一个字符串的子序列,且长度最长。 思路 只要判断两个字符串是否相等,然后返回较长的那个字符串即可。 代码 Ja
阅读全文
摘要:描述 问题是有一组数R,需要输出它的全排列。R的递归可定义如下: 当个数n为1时,Perm(R) = (r),其中r是集合R中唯一的元素 当个数n大于1时,Perm(R)由(r1)Perm(R1),(r2)Perm(R2),(r3)Perm(R3),…,(rn)Perm(Rn)构成 其中Ri = R
阅读全文
摘要:链接 "453. Minimum Moves to Equal Array Elements" 题意 给定一个大小为n的非空数组,定义这样一个操作(move):每次都可以选择n 1个元素进行加1操作,问需要多少次这样的操作可以使数组中的每个元素值相等。 示例 Input: [1,2,3] Outpu
阅读全文
摘要:链接 "455. Assign Cookies" 题意 给孩子们分饼干,每个人的需求量不同。现给定两个数组,第一个数组为每个孩子的需求量(可理解为质量),第二个数组为每个饼干的size(可理解为质量)。求能满足孩子个数的最大值。 思路 解法一: 1. 给两个数组从小到大排序 2. 遍历孩子数组,每遍
阅读全文
摘要:n^2解法 n解法(动态规划) 状态转移方程为: MaxSum[i] = Max{ MaxSum[i 1] + A[i], A[i]} MaxSum[i]表示下标为i及以前的序列中的连续子元素最大和 A[i]表示下标为i的元素值 Java int MaxSubSequence(int A[], in
阅读全文
摘要:链接 "530. Minimum Absolute Difference in BST" 题意 给定一个没有负数的二叉搜索树,找出任意两点节点值之差的绝对值的最小值。 二叉搜索树:对于树中的每个节点X,它的左子树中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值。——数据结构
阅读全文
摘要:链接 "226. Invert Binary Tree" 题意 翻转二叉树。 思路 利用递归交换结点即可。 代码 Java: 效率 Your runtime beats 30.77% of java submissions.
阅读全文
摘要:链接 "371. Sum of Two Integers" 题意 计算两个整数的和,但是不能使用+和 运算符。 思路 不能用加减运算符的话,则需要利用位运算。两个数a和b相加,那么会产生尾数,还有可能进位。在位运算中,0+0=1,0+1=1,1+0=1,1+1=10,可以发现前三个式子和第四个式子的
阅读全文
摘要:题目 输入一串阿拉伯数字整数,输出对应的中文大写数字 样例 123456789 壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖 1000001234 壹拾亿零壹仟贰佰叁拾肆 10000 壹万 10010 壹万零壹拾 思路 记得小学学读数的时候,从最小位从右到左,每4个数一组,如123456789,则分组为1|2
阅读全文
摘要:链接 "389. Find the Difference" 题意 给定字符串s和t,t的生成是根据s中字母的乱序再向其中任意一个位置插入一个任意字母。找出这个字母。 思路 其实思路和之前一道题一样,只是将数字换成了字母。详见(http://www.cnblogs.com/zyoung/p/65874
阅读全文

浙公网安备 33010602011771号