LeetCode
baidu-liuming
机器学习 深度学习 大数据 自然语言处理 linux python shell hive 算法
展开
-
leetcode70: 跳台阶动态规划版
跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:第一步可以跳1级或2级 a. 第一步跳1级, 剩下n-1级;跳法为 f(n - 1) b. 第一步跳2级,剩下 n-2级;跳法为f(n - 2) 由a、b假设可以得出总跳法为: f(n) = f(n - 1) + f(n -2)public int JumpFloor(int...原创 2018-04-05 20:24:41 · 1492 阅读 · 0 评论 -
二叉树遍历
前序遍历的循环写法:树的遍历一般需要栈结构,因为栈结构有“先进后出”的特点# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.righ...原创 2019-12-01 19:40:54 · 140 阅读 · 0 评论 -
leetcode 248 有一个数组arr[n-1]存储了1~n中的n-1个数,问arr中缺少的数字是多少
思路: 首先,这个题使用异或(^)来解决。首先了解几个公式: a ^ a = 0, a ^ b ^ a = b, a ^ b ^ c = a ^ c ^ b 由此,我们可以概括出以下几个结论: 1. 若两个元素相等,则异或结果为0 2. 所有元素与0异或时,结果均不变 3. 异或运算满足交换律首先,该题是下面的题的变种:有2n + 1个数,其中有2n个...原创 2018-05-24 21:46:04 · 837 阅读 · 0 评论 -
旋转有序数组的二分查找
比如,数组为: int[] arr = {15, 16, 19, 20,25, 1, 3, 4,5, 7, 10, 14} 查找key = 7 主要思想 每次根据left和right求出mid后,mid的左边为[left, mid], mid的右边为[mid + 1, right],这两部分中至少有一个是有序的。 arr[mid]和key比较 (1). arr[mid] == key,返...原创 2018-05-23 16:03:55 · 2027 阅读 · 3 评论 -
Leetcode:322-零钱兑换
题目:给定不同面额的硬币(coins)和一个总金额(amount)。写一个函数来计算可以 凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合方式能组成总金额,返回-1。 示例 1: coins = [1, 2, 5], amount = 11 return 3 (11 = 5 + 5 + 1)示例 2: coins = [2], amount = 3 return -1....原创 2018-04-07 10:49:52 · 3475 阅读 · 0 评论 -
LeetCode78-子集
题目 给定一组不同的整数 nums,返回所有可能的子集(幂集)。注意事项:该解决方案集不能包含重复的子集。 思路 1.设置一个大机器人robot解决主问题,对于全排列的每一个元素index,都有取index和不取index区别 2.设置一个辅助数组v[],来记录当前index是取还是不取。 3.当前元素取,执行小机器人robot对下一个元素进行判断 4.当前元素不取,执行小机器人r...原创 2018-04-12 11:35:56 · 419 阅读 · 0 评论 -
LeetCode378-有序矩阵中第k小的元素
题目 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。 思路 直接求解矩阵中的第8小元素很难,我们可以用二分法设定一个值mid,查看mid值是否是矩阵第8小元素。 具体思路为: 1.首先设置mid的初值为矩阵matrix,最后一个数和第一个数的平均值。 2.统计矩阵中每一行小于mid值的个数之...原创 2018-04-12 09:54:51 · 5831 阅读 · 1 评论 -
LeetCode50:二分快速幂
题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路:应概率到幂次有正有负public double Power(double base, int exponent) { if(exponent == 0){ return 1; } int exp...原创 2018-04-07 18:41:14 · 270 阅读 · 0 评论 -
LeetCode.69 二分法求平方根
二分的精髓:函数单调性 + 计算内容重复 函数的单调性:当x1<x2x1<x2x_1f(x1)<f(x2)f(x1)<f(x2)f(x_1) < f(x_2);反之,当f(x1)<f(x2)f(x1)<f(x2)f(x_1) < f(x_2)时,有x1<x2x1<x2x_1xxx的平方根,xxx保证是一个非负整数。 思路:该题为应用二分法的...原创 2018-04-11 20:13:26 · 2951 阅读 · 0 评论 -
LeetCode-198. 打家劫舍
题目描述:你是一个专业的强盗,计划抢劫沿街的房屋。每间房都藏有一定的现金,阻止你抢劫他们的唯一的制约因素就是相邻的房屋有保安系统连接,如果两间相邻的房屋在同一晚上被闯入,它会自动联系警方。给定一个代表每个房屋的金额的非负整数列表,确定你可以在没有提醒警方的情况下抢劫的最高金额。暴力搜索方法 思路:文中给出不能连续抢两家,因此假设从最后一个房屋开始抢,最后一个房屋为index。将原问题分...原创 2018-04-04 10:40:43 · 1869 阅读 · 0 评论