自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android 10以上本地文件读写问题解决

在Mainfest Application中加入这一行 android:requestLegacyExternalStorage=“true”

2022-01-04 16:40:47 1296

原创 Android日常开发-commons-codec-1.6.jar 进行Base64编解码奔溃问题解决

Android系统的Framework层也用了apache的commons-codec这个包,和我在lib中引入的包冲突了欢迎使用Markdown编辑器具体解决方式为修改原包内包名具体操作导入如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,继续你的创作。...

2021-09-16 11:34:09 469

原创 简单题--剑指 Offer 09. 用两个栈实现队列

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

2020-08-19 16:16:00 135

原创 简单题--589. N叉树的前序遍历

力扣刷题给定一个 N 叉树,返回其节点值的前序遍历。例如,给定一个 3叉树 :解题思路:因为是前序遍历 所以每次再遍历子节点之前就将根节点的值插入列表中/** * // Definition for a Node. * function Node(val, children) { * this.val = val; * this.children = children; * }; *//** * @param {Node} root * @return {number

2020-08-19 15:12:04 110

原创 简单题--108. 将有序数组转换为二叉搜索树

力扣刷题将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:解题思路:通过递归 每次将数组分为三个部分 每次都将数组先对半分 第一部分为左子树 切割之后原数组的第一位就是中间值 用来当作根节点 最后再将数组去掉第一位元素 也就是去掉这个中间值 然后再用作右子树/** * Definition for a binary tree node. * function TreeNode(val

2020-08-19 14:50:15 114

原创 简单题--728. 自除数

力扣刷题自除数 是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:输入:上边界left = 1, 下边界right = 22输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]注意:每个输入参数的边界满足 1 <= le

2020-08-18 11:18:46 309

原创 简单题--剑指 Offer 25. 合并两个排序的链表

力扣刷题输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000解题思路:递归 每次将值小的一方的节点后续链 继续放入函数/** * Definition for singly-linked list. * function ListNode(val) { * th

2020-08-18 10:56:38 70

原创 简单题--590. N叉树的后序遍历

力扣刷题给定一个 N 叉树,返回其节点值的后序遍历。例如,给定一个 3叉树 :解题思路:递归/** * // Definition for a Node. * function Node(val,children) { * this.val = val; * this.children = children; * }; *//** * @param {Node} root * @return {number[]} */var postorder = functio

2020-08-18 10:35:23 83

原创 简单题--剑指 Offer 54. 二叉搜索树的第k大节点

力扣刷题给定一棵二叉搜索树,请找出其中第k大的节点。解题思路:递归左子树 根 右子树 将值都传入数组中 最后需要的第k大 就是数组长度减去k 的值/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @param {TreeNode} root * @param

2020-08-18 10:24:31 77

原创 简单题--700. 二叉搜索树中的搜索

力扣刷题给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,解题思路:递归判断/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @param {TreeN

2020-08-18 10:15:45 70

原创 简单题--1370. 上升下降字符串

力扣刷题给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。重复步骤 5 ,直到你没法从 s 中选择字符。重复步骤 1 到 6 ,直到

2020-08-18 10:06:22 180

原创 简单题--1309. 解码字母到整数映射

力扣刷题给你一个字符串 s,它由数字(‘0’ - ‘9’)和 ‘#’ 组成。我们希望按下述规则将 s 映射为一些小写英文字符:字符(‘a’ - ‘i’)分别用(‘1’ - ‘9’)表示。字符(‘j’ - ‘z’)分别用(‘10#’ - ‘26#’)表示。返回映射之后形成的新字符串。题目数据保证映射始终唯一。示例 1:输入:s = “10#11#12”输出:“jkab”解释:“j” -> “10#” , “k” -> “11#” , “a” -> “1” , “b” -&

2020-08-18 09:33:40 143

原创 简单题--1304. 和为零的N个唯一整数

力扣刷题给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。示例 1:输入:n = 5输出:[-7,-1,1,3,4]解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。示例 2:输入:n = 3输出:[-1,0,1]示例 3:输入:n = 1输出:[0]提示:1 <= n <= 1000解题思路:判断n是奇数还是偶数 奇数得话 创建一个初始值为[0]的数组 偶数

2020-08-18 09:30:59 86

原创 简单题--104. 二叉树的最大深度

力扣刷题给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],解题思路:通过递归重复对左右子树进行遍历 返回左右子树中大的那个值加上1 就是最大的深度/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this

2020-08-17 15:29:27 75

原创 简单题--1460. 通过翻转子数组使两个数组相等

力扣刷题给你两个长度相同的整数数组 target 和 arr 。每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。如果你能让 arr 变得与 target 相同,返回 True;否则,返回 False 。示例 1:输入:target = [1,2,3,4], arr = [2,4,1,3]输出:true解释:你可以按照如下步骤使 arr 变成 target:1- 翻转子数组 [2,4,1] ,arr 变成 [1,4,2,3]2- 翻转子数组 [4,2]

2020-08-17 15:22:56 91

原创 简单题--剑指 Offer 24. 反转链表

力扣刷题定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000解题思路:通过while循环判断知道这个节点为null 设定一个值cur为当前节点 pre为当前节点的下一个节点每次都将第一个节点拿出来指向上一个节点 但是直接将pre指向cur得话 后面的节点就断

2020-08-17 15:17:55 77

原创 简单题--657. 机器人能否返回原点

力扣刷题在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。示例 1:输入

2020-08-17 14:43:19 136

原创 简单题--832. 翻转图像

力扣刷题给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,0]]输出: [[1,0,0],[0,1,0],[1,1,1]]解释: 首先翻转每一行: [[0,1,1]

2020-08-17 14:28:01 83

原创 简单题--1323. 6 和 9 组成的最大数字

力扣刷题给你一个仅由数字 6 和 9 组成的正整数 num。你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。请返回你可以得到的最大数字。示例 1:输入:num = 9669输出:9969解释:改变第一位数字可以得到 6669 。改变第二位数字可以得到 9969 。改变第三位数字可以得到 9699 。改变第四位数字可以得到 9666 。其中最大的数字是 9969 。示例 2:输入:num = 9996输出:9999解释:将最后一位从 6 变到 9,其结果

2020-08-17 14:11:54 118

原创 简单题--1502. 判断能否形成等差数列

力扣刷题给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。示例 1:输入:arr = [3,5,1]输出:true解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。示例 2:输入:arr = [1,2,4]输出:false解释:无法通过重新排序得到等差数列。提示:

2020-08-17 14:10:15 115

原创 简单题--709. 转换成小写字母

力扣刷题实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: “Hello”输出: “hello”示例 2:输入: “here”输出: “here”示例 3:输入: “LOVELY”输出: “lovely”解题思路:利用正则匹配大写字母 换成小写字母/** * @param {string} str * @return {string} */var toLowerCas

2020-08-17 14:10:10 63

原创 简单题--剑指 Offer 06. 从尾到头打印链表

力扣刷题输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解题思路:通过每次向新数组的前面插入链表的值 达到一个从尾巴到头的效果/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next =

2020-08-17 14:10:05 61

原创 简单题--1351. 统计有序矩阵中的负数

力扣刷题给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。请你统计并返回 grid 中 负数 的数目。示例 1:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出:8解释:矩阵中共有 8 个负数。示例 2:输入:grid = [[3,2],[1,0]]输出:0示例 3:输入:grid = [[1,-1],[-1,-1]]输出:3示例 4:输入:grid

2020-08-17 14:09:57 109

原创 简单题--226. 翻转二叉树

力扣刷题翻转一棵二叉树。示例:解题思路:利用解构赋值 将左子树的值改为 继续反转之后的右子树的值 反之也一样/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @param {TreeNode} root * @return {TreeNode} */v

2020-08-14 14:28:11 83

原创 简单题--620. 有趣的电影

力扣刷题SQL架构某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列。select * from cinema where mod(id, 2) = 1 and description != 'boring'order by rating DE

2020-08-14 14:21:33 244

原创 简单题--剑指 Offer 05. 替换空格

力扣刷题请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000解题思路:正则替换/** * @param {string} s * @return {string} */var replaceSpace = function(s) {return s.replace(/ /g, "%20");};...

2020-08-14 14:14:18 67

原创 简单题--617. 合并二叉树

力扣刷题给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:解题思路:遍历二叉树 每次都将两个节点的值的和赋值给t1 然后继续将t1左子树和t2左子树 t1右子树和t2右子树 进行遍历/** * Definition for a binary tree node. * function Tre

2020-08-14 14:09:16 146

原创 简单题--938. 二叉搜索树的范围和

力扣刷题给定二叉搜索树的根结点 root,返回 L 和 R(含)之间的所有结点的值的和。二叉搜索树保证具有唯一的值。示例 1:输入:root = [10,5,15,3,7,null,18], L = 7, R = 15输出:32示例 2:输入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10输出:23提示:树中的结点数量最多为 10000 个。最终的答案保证小于 2^31。解题思路:中序遍历二叉树 如果当前值等于L或者R

2020-08-14 13:55:52 117

原创 简单题--461. 汉明距离

力扣刷题两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0)↑ ↑上面的箭头指出了对应二进制位不同的位置。解题思路:解题关键点在于异或的使用 异或就是相同为0 不同为1 而 1 的二进制为001 ,4的二进制为100 1异或4 也就是1^4 就等于10

2020-08-14 13:26:00 160

原创 简单题--1299. 将每个元素替换为右侧最大元素

力扣刷题给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。完成所有替换操作后,请你返回这个数组。示例:输入:arr = [17,18,5,4,6,1]输出:[18,6,6,6,1,-1]提示:1 <= arr.length <= 10^41 <= arr[i] <= 10^5解题思路:循环数组长度-1 每次将原数组中第一个值去掉 然后找出最大值 添加入新数组中 循环完毕之后再给新数组添加一个-1/** *

2020-08-14 13:19:45 106

原创 简单题--1021. 删除最外层的括号

力扣刷题有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。给出一个非空有效字符串 S,考虑将其进行原语化分解,使得:S = P_1 + P_2 + … + P_k,其中 P_i 是有

2020-08-14 13:19:38 73

原创 简单题--1534. 统计好三元组

力扣刷题**给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。0 <= i < j < k < arr.length|arr[i] - arr[j]| <= a|arr[j] - arr[k]| <= b|arr[i] - arr[k]| <= c其中 |x| 表示 x 的绝对值。返回 好三元组的数量 。

2020-08-14 13:19:31 185

原创 简单题--627. 交换工资

力扣刷题给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。例如:idnamesexsalary1Am25002Bf15003Cm55004Df500运行你所编写的更新语句之后,将会得到以下表

2020-08-14 13:19:25 83

原创 简单题--595. 大的国家

力扣刷题解题思路:查找world表中的 name population area 三个字段 条件为超过300万平方公里,或者(or)人口超过2500万SELECT name, population, area FROM World WHERE area > 3000000 OR population > 25000000...

2020-08-13 15:19:34 75

原创 简单题--1221. 分割平衡字符串

力扣刷题在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:输入:s = “RLRRLLRLRL”输出:4解释:s 可以分割为 “RL”, “RRLL”, “RL”, “RL”, 每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’。示例 2:输入:s = “RLLLLRRRLR”输出:3解释:s 可以分割为 “RL”, “LLLRRR”, “LR”, 每个

2020-08-13 15:08:24 141

原创 简单题--1464. 数组中两元素的最大乘积

力扣刷题给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。请你计算并返回该式的最大值。示例 1:输入:nums = [3,4,5,2]输出:12解释:如果选择下标 i=1 和 j=2(下标从 0 开始),则可以获得最大值,(nums[1]-1)(nums[2]-1) = (4-1)(5-1) = 3*4 = 12 。示例 2:输入:nums = [1,5,4,5]输出:16解释:选择下标 i=1 和

2020-08-13 14:54:35 170

原创 简单题--剑指 Offer 17. 打印从1到最大的n位数

力扣刷题输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印n 为正整数解题思路:打印出1到n位的十进制数 也就是相当于打印出10的n次方-1的数字/** * @param {number} n * @return {number[]} */var printNumbers = functio

2020-08-13 14:47:54 91

原创 简单题--剑指 Offer 27. 二叉树的镜像

力扣刷题请完成一个函数,输入一个二叉树,该函数输出它的镜像。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000解题思路:通过递归以及结构赋值/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right =

2020-08-13 14:27:44 72

原创 简单题--1436. 旅行终点站

力扣刷题给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此只会有一个旅行终点站。示例 1:输入:paths = [[“London”,“New York”],[“New York”,“Lima”],[“Lima”,“Sao Paulo”]]输出:“

2020-08-13 14:13:37 182

原创 简单题--剑指 Offer 22. 链表中倒数第k个节点

力扣刷题输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.解题思路:要求获取倒数第k个节点的链表 也就是得到链表长度减去k之后的链表 先通过循环得到链表长度 然后得到需要的链表/** * De

2020-08-13 13:56:12 98

空空如也

空空如也

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

TA关注的人

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