主页

80.Remove Duplicates from Sorted Array II(Medium)

Follow up for “Remove Duplicates”: What if duplicates are allowed at most twice? 给定一个有序的整数数列,每个数最多只能出现两次,然后去除多余的数,把剩下的数排在原数组的前面,并返回新数列的长度   这虽然是个中等题,不过难度不大,唯一需要多考虑的就是在原数组前面排列新的数组 For example Given sorted array nums = [1,1,1,2,2,3], Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn...

阅读更多

500.Keyboard Row(Easy)

Given a List of words, return the words that can be typed using letters of alphabet on only one row’s of American keyboard like the image below.   虽然还把键盘搬出来了,但是实际上只是搜索每一个String的字母是否在键盘的同一行出现,键盘的每一行只要用一个String代替就ok了,剩下的问题显然就简单了。 For example Input: [“Hello”, “Alaska”, “Dad”, “Peace”] Output: [“Alaska”, “Dad”] My Solution (Java) Version ...

阅读更多

374.Guess Number Higher or Lower(Easy)

We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to guess which number I picked. Every time you guess wrong, I’ll tell you whether the number is higher or lower. You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0): 我们来玩一个猜数游戏,游戏规则是这样的:我从1~n中选择一个数,你需要猜我选的数是哪一个,如果你猜错的...

阅读更多

121. Best Time to Buy and Sell Stock(Easy)

Say you have an array for which the i element is the price of a given stock on day i. 给定一个数组,其中第i个元素是第i天是这个股票的价格 If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock),  design an algorithm to find the maximum profit. 如果你仅被允许交易一次(即买一支股票和卖一支股票),设计一个算法来找到最大的利润   这个题目有点绕,其实就是在一个数组中找到差值(利润...

阅读更多

283.Move Zeroes(Easy)

Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements. For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0]. 给定一个num数组,把数组中的0都移动到最后去 Note: 1.  You must do this in-place without making a copy of the array. ...

阅读更多

226.Invert Binary Tree(Easy)

Invert a binary tree. 反转二叉树   基本上二叉树的玩意儿用递归都能做 For example to My Solution (Java) Version 1  Time: 1ms:   简单地递归然后调换左右子树 /**  * Definition for a binary tree node.  * public class TreeNode {  *     int val;  *     TreeNode left;  *     TreeNode right;  *     TreeNode(int x) { val = x; }  * }  */ public class Solution {     public TreeNo...

阅读更多

9.Palindrome Number(Easy)

Determine whether an integer is a palindrome. Do this without extra space. 判断一个数是否为回文数,不要使用额外的空间   回文数就是顺序和倒叙写出来是同样的数的数,比如121,12321等 My Solution (Java) Version 1  Time: 195ms:   既然是顺序倒序都一样的话,那就构造倒序的数,如果和前面的数相等的话,那就是回文数咯,从前往后,最高位的变成新数的最低位,以此类推 public class Solution {     public boolean isPalindrome(int x) {         if(x<0)return false;     ...

阅读更多

264.Ugly Number II(Medium)

Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.  For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10 ugly numbers. Note that 1 is typically treated as an ugly number.   题意就不翻译了,意思就是把丑数从小到大排列,输出制定位置的那个丑数是多少,按照上一题的那种朴素判断当然是行得通的,只要把1~n的数全...

阅读更多

263.Ugly Number(Easy)

Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.  For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7. Note that 1 is typically treated as an ugly number.   丑数就是分解因子之后只含有2,3,5的数就是丑数,题目是判断一个整数是不是丑数,简单到只有这一种解法,没有别的了 ...

阅读更多

217.Contains Duplicate(Easy)

Given an array of integers, find if the array contains any duplicates.  Your function should return true if any value appears at least twice in the array,  and it should return false if every element is distinct. 给定一个整数数组,如果数组里面有任意一个值至少出现两次及以上,则函数返回true,如果每个元素都不同则返回false My Solution (Java) Version 1  Time: 14ms:   第一次用到了set,好开心,然而并没有什么用,用list来...

阅读更多

28.Implement strStr()(Easy)

Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 返回needle在haystack中第一次出现的位置的索引值,如果没有找到,就返回-1   就是寻常的字符串匹配搜索,应该因为是简单题,所以朴素的循环比较也能过,事实上应该要用KMP算法的 My Solution (Java) Version 1  Time: 7ms:   这就是一个典型的朴素的两重循环比较的算法,没有什么好说的 public class Solution {     public int strStr(Strin...

阅读更多

342.Power of Four(Easy)

Given an integer (signed 32 bits), write a function to check whether it is a power of 4. 给定一个32位的整数,判断是否为4次幂   一开始看到这题我就想到打表,但是,果然还是位运算最厉害 Example: Given num = 16, return true. Given num = 5, return false. Follow up Could you solve it without loops/recursion? My Solution (Java) Version 1 Time: 2ms:   没有什么好说的,在32位数的世界里面,4次幂并没有几个,只有1...

阅读更多

328.Odd Even Linked List(Medium)

Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes. You should try to do it in place. The program should run in O(1) space complexity and O(nodes) time complexity.   题目不难理解我就不翻译了,就是一个单链表,把所有奇数的结点放在前面,然后接着所有的偶数结点,然后要求在时间复杂度O(n...

阅读更多

6.ZigZag Conversion(Easy)

The string ”PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) And then read line by line: ”PAHNAPLSIIGYIR” Write the code that will take a string and make this conversion given a number of rows: string convert(string text, ...

阅读更多

415.Add Strings(Easy)

Given two non-negative numbers num1  and num2  represented as string, return the sum of num1  and num2 不解释了,就是大数相加 Note: 1.The length of both num1 and num2 is < 5100. 2.Both num1 and num2 contains only digits 0-9. 3.Both num1 and num2 does not contain any leading zero. 4.You must not use any built-in BigInteger library or convert the inp...

阅读更多