算法题解
宇多田家的熊
这个作者很懒,什么都没留下…
展开
-
LeetCode69.X的平方根
这是一道简单题,介绍两种思路,第一种比较暴力,第二种利用二分查找。 题目描述: 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 第一种方法: 思路:一共有两种情况: (1)X的平方根恰好是正整数; (2)X的平方根不是正整数; 对于第一种情况,不用多说,因为X是int类型的正整数,所以从a...原创 2019-05-27 11:04:30 · 139 阅读 · 0 评论 -
LeetCode79.单词搜索
题目描述: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ [‘A’,‘B’,‘C’,‘E’], [‘S’,‘F’,‘C’,‘S’], [‘A’,‘D’,‘E’,‘E’] ] 给定 word = “ABCCED”, 返...原创 2019-06-04 10:09:44 · 111 阅读 · 0 评论 -
LeetCode80. 删除排序数组中的重复项 II
题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定 nums = [1,1,1,2,2,3], 函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。 你不需要考虑数组中超出新长...原创 2019-06-04 10:39:21 · 81 阅读 · 0 评论 -
LeetCode84.柱状图中最大的矩形
题目描述: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。 示例: 输入: [2,1,5,6,2,3] 输出: 10 思路: 这里介绍两种思路: 1....原创 2019-06-26 11:32:41 · 99 阅读 · 0 评论 -
算法:01背包问题,思路讲解及Java代码
问题描述 有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入具有最大总价值的物品? 表格举例: 物品编号(i) 重量(V) 价值(W) 1 2 3 2 3 4 3 4 5 4 5 8 5 9 10 现在我们给定背包的容量 C = 20;求解,能装入的最大总价值是多少呢? 思路: 对于该问题,先代入一种思路:对于一个物品,只有两种选择,拿或者...原创 2019-08-08 14:19:05 · 519 阅读 · 0 评论 -
LeetCode415 字符串相加 拓展:任意两个数字字符串相加
前言: LeetCode中的字符串相加是一道简单题,因为题目只涉及两个整数相加,思路相对简单;最近笔试遇到一道题,是将任意两个非负字符串数字相加,可能是整数也可能是带小数的,而且最后输出要完全符合数字的要求,即数字的整数部分不能以0开头(除非本身等于0),小数部分不能以0结尾。也就是123.321不能是0123.3210这种形式。 下面我们先看看一种简单的情况,也就是两整数相加的情况,如何计算。 ...原创 2019-08-09 11:20:03 · 440 阅读 · 0 评论 -
动态规划:最长递增子序列 思路及解法
题目: 给定数组arr,返回arr的最长递增子序列。 举例: arr = [2,1,5,3,6,4,8,9,7],返回的最长递增子序列为[1,3,4,8,9],长度为5。 思路: 思路解析来自左神的《程序源代码面试指南》; 这里介绍的是时间复杂度为O(N2),额外空间复杂度O(N2)的方法: 1.建立数组dp,长度为arr的长度n,其中dp[i]的含义是,以arr[i]这个数结尾的情况下,即a[0...原创 2019-08-11 14:36:00 · 318 阅读 · 0 评论 -
LeetCode322 零钱兑换 动态规划思路及解法
题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1 示例 2: 输入: coins = [2], amount = 3 输出: -1 说明: 你可以...原创 2019-08-11 14:57:42 · 238 阅读 · 0 评论