05 2017 档案

摘要:链接 "541. Reverse String II" 题意 翻转字符串II 给定一个字符串和k,k表示要翻转前k个字母,然后跳过k个字母,再翻转k个字母...以此类推。当字符个数少于2k但大于等于k个时,翻转前k个字符并且剩余的保持不变。 思路 循环调用翻转字符串的方法即可。 代码 Java pu 阅读全文
posted @ 2017-05-24 17:06 zyoung 阅读(172) 评论(0) 推荐(0)
摘要:链接 "551. Student Attendance Record I" 题意 学生上课记录 给定一个字符串,其中包含了A、L、P三个字母,分别代表缺勤、迟到、已到三种情况。当学生的记录没有超过一个A或者没有超过连续两个L时可以被奖励。 问该学生是否能被奖励。 思路 直接遍历字符串,用a和l记录出 阅读全文
posted @ 2017-05-24 16:52 zyoung 阅读(163) 评论(0) 推荐(0)
摘要:链接 "268. Missing Number" 题意 消失的数字 给定一个数组,包含了n个不同的数(从0到n),注意其中缺少了一个数。找出这个数。 思路 思路一: 首先对该数组排序,直接遍历该数组,缺少哪个数字直接返回 思路二: 来自讨论区,由于a^b^b = a。因此可以遍历数组,假设数组没有缺 阅读全文
posted @ 2017-05-24 10:28 zyoung 阅读(125) 评论(0) 推荐(0)
摘要:链接 "447. Number of Boomerangs" 题意 回旋镖之数。给定n个点(x和y坐标),找出这样的所有三点组合(i,j,k):i到j的距离等于i到k的距离。n至多等于500。 思路 遍历所有的点,因为点的顺序也有关系,所以j仍要从0开始。获得i和j的距离后存入map中,若当前距离已 阅读全文
posted @ 2017-05-23 22:32 zyoung 阅读(138) 评论(0) 推荐(0)
摘要:链接 "350. Intersection of Two Arrays II" 题意 给定两个数组,找出交集(注意交集中元素的次数应该和两个数组中出现的次数一致、顺序可任意) 思路 将两个数组排序,各设置一个指针依次遍历两个数组,若两个数组当前遍历值相等,则add到一个list中(保存答案)。 若不 阅读全文
posted @ 2017-05-22 23:05 zyoung 阅读(147) 评论(0) 推荐(0)
摘要:链接 "338. Counting Bits" 题意 给定一个整数num,计算从0到num之间的每个整数的二进制形式中1的个数。 思路 找规律: 0 [0] 1 [0, 1] 2 [0, 1, 1] 3 [0, 1, 1, 2] 4 [0, 1, 1, 2, 1] ... 7 [0, 1, 1, 2 阅读全文
posted @ 2017-05-18 13:54 zyoung 阅读(119) 评论(0) 推荐(0)
摘要:链接 "100. Same Tree" 题意 判断两棵树是否一样 思路 同时遍历两棵树,判断相对应的结点是否相等即可 代码 C: 阅读全文
posted @ 2017-05-18 12:49 zyoung 阅读(118) 评论(0) 推荐(0)
摘要:链接 "237. Delete Node in a Linked List" 题意 删除指定的单向链表结点(除了尾结点) 思路 因为是单向链表,并不知道前序元素。所以不能将前序元素指向node的后继结点,应该转换思路,让node的值改为后继结点 的值,然后指向后继结点的后继结点。 代码 Java: 阅读全文
posted @ 2017-05-18 12:43 zyoung 阅读(110) 评论(0) 推荐(0)
摘要:链接 "575. Distribute Candies" 题意 给兄妹分糖果,糖果数量表示为偶数长度的数组,不同的数字代表不同的糖果,每个数字代表一颗糖果。现要求兄妹分得的糖果数量一样多,但是妹妹的种类必须尽量多。返回妹妹获得的糖果种类数。 思路 第一种:先对数组排序,那么同种糖果归类到了一起。只需 阅读全文
posted @ 2017-05-16 14:44 zyoung 阅读(479) 评论(0) 推荐(0)
摘要:链接 "206. Reverse Linked List" 题意 翻转一个单向链表 思路 由于是单向链表,不能直接将第二个数指向第一个数,这样便失去了第三个数的地址。因此需要三个游标,一个指示当前结点,一个指示前序结点,一个指向后序结点。 代码 Java: 阅读全文
posted @ 2017-05-16 14:09 zyoung 阅读(102) 评论(0) 推荐(0)
摘要:链接 "401. Binary Watch" 题意 有一块二进制表,其中有4个LED灯代表时(0 11),6个LED灯代表分(0 59)。现给定一个非负整数n,代表有n个灯亮,列出所有可能的时间(顺序可任意)。 思路 来自讨论区,枚举每一种可能,注意h是乘以64(作为第7个灯,第6个是32),利用b 阅读全文
posted @ 2017-05-16 13:40 zyoung 阅读(127) 评论(0) 推荐(0)
摘要:链接 "13. Roman to Integer" 题意 根据罗马数字表示法给出阿拉伯数字表示法。 思路 按每一位的值相加即可,但若左边符号比右边符号小,是需要用较大值减较小值的。具体组数规则百度。 代码 Java: 阅读全文
posted @ 2017-05-16 11:24 zyoung 阅读(186) 评论(0) 推荐(0)
摘要:链接 "217. Contains Duplicate" 题意 给定一个数组,只要其中有元素重复,返回true,否则false 思路 利用set的性质即可 代码 Java: 阅读全文
posted @ 2017-05-16 10:46 zyoung 阅读(102) 评论(0) 推荐(0)
摘要:链接 "409. Longest Palindrome" 题意 给定一个包含大小写的字符串,计算这些字母能组成的最长的回文串的长度。 样例 Input: "abccccdd" Output: 7 Explanation: One longest palindrome that can be buil 阅读全文
posted @ 2017-05-16 10:40 zyoung 阅读(144) 评论(0) 推荐(0)
摘要:链接 "504. Base 7" 题意 给定一个整数,返回其七进制表示法。 思路 除7取余法即可,注意负数的情况,可以先视为正数,最后加上负号。 代码 Java: Java public class Solution { public String convertToBase7(int num) { 阅读全文
posted @ 2017-05-16 10:14 zyoung 阅读(175) 评论(0) 推荐(0)
摘要:链接 "242. Valid Anagram" 题意 给定两个字符串s和t,判断t是否为s的乱序字符串(即只是字母顺序被打乱) 思路 遍历两个字符串,记录其中每个字母出现的次数(将26个字母转为相应的数字作为数组下标存储),然后对比即可。 代码 Java: Java public class Sol 阅读全文
posted @ 2017-05-15 23:20 zyoung 阅读(189) 评论(0) 推荐(0)
摘要:链接 "169. Majority Element" 题意 给定一个数组,找出其中的“主”元素。定义为:出现次数超过⌊ n/2 ⌋次的元素。 注意: 数组非空且答案一定存在 [1,1,2,2]输出1,[2,2,1,1]输出为2 思路1 直接对数组排序,输出nums[nums.length/2]即可。 阅读全文
posted @ 2017-05-15 23:05 zyoung 阅读(128) 评论(0) 推荐(0)
摘要:链接 "171. Excel Sheet Column Number" 题意 给出excel中的行号表示法,返回其数字表示法。 思路 其实可以理解为一种进制,变成进制间的转化问题。 代码 Java 1: Java public class Solution { public int titleToN 阅读全文
posted @ 2017-05-12 16:49 zyoung 阅读(127) 评论(0) 推荐(0)
摘要:链接 "122. Best Time to Buy and Sell Stock II" 题意 给定一个数组,第i个数代表第i天股票的价格。设计算法找出最大收益。注意买股票前必须将已有的卖掉。 思路 遍历数组,只要后一天的价格高于前一天的价格,那么就将两天之差加入利润即可。 代码 Java : 思考 阅读全文
posted @ 2017-05-12 16:39 zyoung 阅读(115) 评论(0) 推荐(0)
摘要:链接 "563. Binary Tree Tilt" 题意 给定一个二叉树,返回这个二叉树的tilt tilt:一个结点的tilt是指这个结点左子树所有结点和与右子树所有结点和的差的绝对值。 思路 利用递归,每个结点返回其所有(子)结点的和。设置一个全局变量累加每个结点的tilt值。 代码 Java 阅读全文
posted @ 2017-05-12 16:26 zyoung 阅读(259) 评论(0) 推荐(0)
摘要:链接 "566. Reshape the Matrix" 题意 给定一个矩阵和新的行数和列数。输出变形后的矩阵。 思路 利用给定的行数和列数构造一个二维数组,再将原矩阵中的数一个一个进行填充。 代码 Java 1: Java public class Solution { public int[][ 阅读全文
posted @ 2017-05-12 15:25 zyoung 阅读(172) 评论(0) 推荐(0)
摘要:链接 "561. Array Partition I" 题意 给定长度为2n的整型数组,要将它们分为n组,并且要让每组中的较小数之和尽可能的大 思路 要让和尽可能大,那么就不能“浪费”大的数,因此可以将数组排序,让每组数之间的差距尽可能小。 代码 Java : Java public class S 阅读全文
posted @ 2017-05-12 15:15 zyoung 阅读(179) 评论(0) 推荐(0)
摘要:链接 "387. First Unique Character in a String" 题意 给定一个字符串(只有小写字母),返回其中第一个没有重复的字母的下标 思路 把这些字母转成数字存入数组,值为出现的次数。按照字符串的字母顺序遍历,当值为1时返回即可。 代码 Java : Java publ 阅读全文
posted @ 2017-05-12 14:50 zyoung 阅读(139) 评论(0) 推荐(0)
摘要:链接 "404. Sum of Left Leaves" 题意 求二叉树所有左结点值之和 思路 递归即可,注意判断条件,累加的值必须是左结点且为叶子结点 代码 Java : 思考 需要学会list向数组的转换 效率 Your runtime beats 85.75 % of java submiss 阅读全文
posted @ 2017-05-09 23:18 zyoung 阅读(88) 评论(0) 推荐(0)
摘要:链接 "349. Intersection of Two Arrays" 题意 给定两个数组,求交集。 注意交集中的数是唯一的,顺序任意。 思路 1. 将数组1存入set中 2. 遍历数组2,只要set中有数组2中的数,便插入list 3. list转为数组 代码 Java : Java publi 阅读全文
posted @ 2017-05-09 23:10 zyoung 阅读(107) 评论(0) 推荐(0)
摘要:若只要小于数组长度个数的随机数呢?如何保证没有重复选取同一个元素? 不能直接随机生成下标取,因为有可能取到重复元素 只要在for循环里面减少次数,然后选取被交换的那几个即可 阅读全文
posted @ 2017-05-02 19:18 zyoung 阅读(182) 评论(0) 推荐(0)