自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 算法——剑指 Offer 14- II. 剪绳子 II

剑指 Offer 14- II. 剪绳子 II原题链接题目:(数据范围变大)给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m - 1] 。请问 k[0]*k[1]*...*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:100000

2020-09-26 22:16:34 68

原创 算法——剑指 Offer 14- I. 剪绳子(LeetCode 343)

剑指 Offer 14- I. 剪绳子原题链接题目:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m - 1] 。请问 k[0]*k[1]*...*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

2020-09-26 21:48:52 108

原创 算法——剑指 Offer 13. 机器人的运动范围

剑指 Offer 13. 机器人的运动范围原题链接题目:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子? 示例 1:输入:m =

2020-09-26 18:30:19 186

原创 算法——剑指 Offer 12. 矩阵中的路径

剑指 Offer 12. 矩阵中的路径原题链接题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]但矩阵中不包含字符串“abfb”的

2020-09-26 16:15:04 87

原创 算法——剑指 Offer 11. 旋转数组的最小数字(可重复)

剑指 Offer 11. 旋转数组的最小数字(可重复)原题链接题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。  示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0题解1:二分法主要思路:若数组有序,则优先考虑使用二分搜索。可选的比较

2020-09-26 10:58:03 120

原创 算法——剑指 Offer 10- I. 斐波那契数列

剑指 Offer 10- I. 斐波那契数列原题链接题目:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0,   F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。&nbsp

2020-09-25 16:31:10 73

原创 算法——剑指 Offer 09. 用两个栈实现队列

剑指 Offer 09. 用两个栈实现队列原题链接题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:

2020-09-25 15:36:59 244

原创 算法——剑指 Offer 07. 重建二叉树

剑指 Offer 07. 重建二叉树原题链接题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7 限制:0 <= 节点个数 <= 5000 题解1

2020-09-25 12:15:59 61

原创 算法——剑指 Offer 06. 从尾到头打印链表

17. 电话号码的字母组合原题链接题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1:输入:head = [1,3,2]输出:[2,3,1] 题解1:使用栈主要思路:要点:代码: class Solution { public int[] reversePrint(ListNode head) { LinkedList<Integer> stack = new Linke

2020-09-24 20:59:04 70

原创 算法——剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格原题链接题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1:输入:s = "We are happy."输出:"We%20are%20happy."题解1:遍历主要思路:遍历字符串,替换空格即可代码: class Solution { public String replaceSpace(String s) { if (s.equals("") || s == nu

2020-09-24 20:37:50 119

原创 算法——剑指 Offer 04. 二维数组中的查找

剑指 Offer 04. 二维数组中的查找原题链接题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26,

2020-09-24 20:22:05 61

原创 算法——剑指 Offer 03. 数组中重复的数字

17. 电话号码的字母组合原题链接题目:题解1:动态规划法主要思路:要点:代码:复杂度分析:时间复杂度:O(N)空间复杂度:O(1)题解2:队列求法主要思路:主要流程:代码:复杂度分析:时间复杂度:O(N^2)空间复杂度:O(1)参考题解:...

2020-09-24 17:03:11 76

原创 算法——LeetCode62. 不同路径

62. 不同路径原题链接题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径? 示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 ->

2020-09-07 16:18:28 244

原创 算法——LeetCode56. 合并区间

56. 合并区间原题链接题目:给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。注意:输入类型已于2019年4

2020-09-07 10:09:24 142

原创 算法——LeetCode55. 跳跃游戏

55. 跳跃游戏原题链接题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所

2020-09-06 21:02:17 137

原创 解决同时引入bootstrap样式与layui样式导致layui部分样式被覆盖的问题

问题1:网页整体布局用的是bootstrap3的样式,但同时使用了layui的数据表格来进行表格数据的展示,导致layui的表格中的按钮字体颜色被bootstrap的样式覆盖。错误样式如下图(操作栏的按钮图标):解决方法:方法1:layui.table回调覆盖在 layui 表格数据加载的回调方法中(table.render中的done()方法),通过 jquery类选择器,重新设置其字体颜色:$(".layui-table-col-special a").addClass("barColor

2020-09-06 18:47:18 5374

原创 算法——LeetCode53. 最大子序和 (分治法与动态规划法小总结)(剑指offer 42)

53. 最大子序和原题链接题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。题解1:暴力法,两层for循环查找最大子序列主要思路:外层 for 循环控制以 nums[i] 为起始元

2020-09-06 17:06:20 387

原创 算法——LeetCode49. 字母异位词分组

49. 字母异位词分组原题链接题目:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[["ate","eat","tea"],["nat","tan"],["bat"]]说明: 所有输入均为小写字母。 不考虑答案输出的顺序。题解1:排序数组分类主要思想:解题的核心是判断每个字符串是否为字母异位词方法是一个字符串当且仅当 其排序

2020-09-03 15:01:59 184

原创 算法——LeetCode48. 旋转图像

48. 旋转图像原题链接题目:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 matrix =[[ 5, 1, 9,11],[ 2, 4, 8

2020-09-03 10:50:41 218

原创 算法——LeetCode46. 全排列

46. 全排列原题链接题目:给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]题解1:回溯法(递归DFS)主要流程:每个状态结点的信息包含 输入数组,结果集,使用标记数组,当前列表这里注意在每次递归搜索完成后需要恢复状态,撤销之前的操作,避免影响其他结点具体搜素过程图参考如下:在具体代码中体现的状态重置,就是在递归

2020-09-03 10:17:10 173

原创 算法——LeetCode39. 组合总和

39. 组合总和原题链接题目:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1:输入:candidates = [2,3,6,7]

2020-09-02 15:17:30 270

原创 算法——LeetCode34. 在排序数组中查找元素的第一个和最后一个位置(二分查找及二分法要点总结)

17. 电话号码的字母组合原题链接题目:题解1:递归(DFS)主要流程:代码:题解2:队列求法主要思路:主要流程:代码:参考题解:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/da-jia-bu-yao-kan-labuladong-de-jie-fa-fei-chang-2/...

2020-09-02 11:20:13 480

原创 算法——LeetCode 33. 搜索旋转排序数组

33. 搜索旋转排序数组原题链接题目:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2]

2020-09-01 15:38:04 179

原创 算法——LeetCode31. 下一个排列

31. 下一个排列原题链接题目:下一个排列实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1题解1:主要思路流程:从后往前找相邻元素为升序的两个数,a[i],a[j],这时我们要替换的一个数为a[i],j之后的

2020-09-01 10:43:45 262

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除