算法学习
某晏
For Dream.
展开
-
[Leetcode,python] Reverse String 反转字符串
问题描述:Write a function that takes a string as input and returns the string reversed.Example:Given s = "hello", return "olleh".解决方案:class Solution(object): def reverseString(原创 2016-08-03 09:35:46 · 620 阅读 · 0 评论 -
[牛客网,剑指offer,python] 矩阵覆盖
矩阵覆盖题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路这个问题和 跳台阶 很相似,2*n的大矩形就相当于“跳台阶“问题中的台阶,大矩形的长度n相当于台阶的个数n;从左至右的去覆盖,把小矩形竖着放相当于跳一个台阶,把小矩阵横着放相当于跳两个台阶。原创 2017-07-03 15:18:10 · 560 阅读 · 0 评论 -
[牛客网,剑指offer,python] 从头到尾打印链表
从头到尾打印链表题目描述输入一个链表,从尾到头打印链表每个节点的值。解题思路新建一个空列表,从头到尾插入每个节点的值到列表作为列表的第一个元素。原创 2017-07-02 16:54:22 · 2116 阅读 · 1 评论 -
[牛客网,剑指offer,python] 重建二叉树
重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路前序遍历:根节点->左子树->右子树中序遍历:左子树->根节点->右子树后序遍历:左子树->右子树->根节点整体思路为使用递归的方法原创 2017-07-02 17:11:12 · 812 阅读 · 0 评论 -
[牛客网,剑指offer,python] 用两个栈实现队列
用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路队列:先进先出栈:先进后出两次先进后出 =>先进先出代码原创 2017-07-02 17:29:25 · 334 阅读 · 0 评论 -
[牛客网,剑指offer,python] 旋转数组的最小数字
旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路比较相邻元素值的大小,如果右边的数比左边的数小,则返回小的那个数。原创 2017-07-02 17:40:57 · 322 阅读 · 0 评论 -
[牛客网,剑指offer,python] 斐波那契数列
斐波那契数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39解题思路最直接的思路是用递归,但是最原始的递归{ return Fibonacci(n-1) + Fibonacci(n-2) }会导致重复计算,故选用效率更高的迭代。原创 2017-07-02 19:47:45 · 449 阅读 · 0 评论 -
[牛客网,剑指offer,python] 跳台阶
跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路当前台阶的跳法种数 = 当前台阶后退一个台阶的跳法总数 + 当前台阶后退两个台阶的跳法总数 即:f (n) = f (n-1) + f (n-2) 问题则变得和斐波那契数列很相似了,但初值有一点区别。原创 2017-07-02 20:03:04 · 477 阅读 · 0 评论 -
[牛客网,剑指offer,python] 变态跳台阶
变态跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路这个问题和 跳台阶 很类似,只是将青蛙每次跳跃阶数的选择从两种扩展到了n种。 问题可以转换为:当前台阶的跳法种数 = 当前台阶之前的所有台阶的跳法之和 即:f (n) = f (n-1) + f (n-2) + f (n-3) + … + f (2) + f (原创 2017-07-02 20:31:28 · 1653 阅读 · 0 评论 -
[leetcode, python] Two Sum 两数之和等于某数
Given an array of integers, return indices of the two numbers such that they add up to a specific target.原创 2017-03-13 22:19:27 · 3405 阅读 · 0 评论 -
[牛客网,Java] Binary Search, 二分查找
对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。 给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。原创 2017-03-11 14:07:15 · 764 阅读 · 1 评论 -
[Leetcode,python] Find All Numbers Disappeared in an Array 寻找数组中消失的数字
Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements of [1, n] inclusive that do not appear in this array.原创 2016-12-21 01:04:29 · 877 阅读 · 0 评论 -
[leetcode, python] Total Hamming Distance 多个数字之间的汉明距离
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.Now your job is to find the total Hamming distance between all pairs of the given原创 2016-12-30 01:16:26 · 1053 阅读 · 0 评论 -
[leetcode, python] Reverse Words in a String 反转字符串
Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".原创 2016-12-30 00:16:49 · 616 阅读 · 0 评论 -
[Leetcode,python] Hamming Distance 汉明距离
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.Given two integers x and y, calculate the Hamming distance.原创 2016-12-20 00:12:40 · 823 阅读 · 0 评论 -
[leetcode, python] Pascal's Triangle II 杨辉三角
Given an index k, return the kth row of the Pascal's triangle.原创 2016-12-23 00:27:56 · 662 阅读 · 0 评论 -
[Leetcode,python] Majority Element 众数
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.原创 2016-12-22 00:11:56 · 427 阅读 · 0 评论 -
[牛客网,剑指offer,python] 二进制中1的个数
二进制中1的个数题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路将该二进制数的每一位与1做与运算,统计结果为1的个数。 具体做法是:对二进制数进行右移操作,每次右移一位,然后和1进行与运算。由于1的二进制表示为”… 0000 0001”,所以将右移后的二进制数和1做与运算实际是判断右移后的二进制数的最后一位是否为1。原创 2017-07-03 15:42:37 · 714 阅读 · 0 评论