
算法学习
文章平均质量分 62
能解决问题的算法就是好算法
ฅQSω[*邱╭
看破红尘、宠辱不惊、淡泊名利、心静如水、清心寡欲。
展开
-
js json扁平数组转树形结构
js json扁平数组转树形结构1.场景2.方法1.场景后台返回的数据是这样的渲染到页面也就成这样了很明显是不对的,结果应该是这样2.方法 const result = [] //定义空数组作为结果 const map = demo.reduce((pre, cur) => { pre[cur.zzlx] = cur.zzlx //将原始数组转换成对象 (用于判断是否有children属性) return pre原创 2022-05-27 16:31:24 · 260 阅读 · 0 评论 -
算法 搜索插入位置
算法 搜索插入位置1.题目2.方法2.12.2二分法1.题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4提示原创 2022-05-26 15:13:38 · 97 阅读 · 0 评论 -
算法题 移除元素
算法题 移除元素1.题目2.方法2.1拷贝覆盖(自己想到的方法)2.2双指针2.2双指针优化1.题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。原创 2022-05-24 17:13:53 · 163 阅读 · 0 评论 -
算法题 爬楼梯
算法题 爬楼梯1.题目2.方法2.1js版1.题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1.1 阶 + 1 阶2.2 阶示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1.1 阶 + 1 阶 + 1 阶2.1 阶 + 2 阶3.2 阶 + 1 阶提示:1 <= n <= 452.方法这个题笔试就遇原创 2022-04-26 00:45:07 · 358 阅读 · 0 评论 -
算法题学习 x 的平方根
算法题学习 x 的平方根1.题目2.方法2.1js版2.2大神版(二分法)1.题目给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。示例 1:输入:x = 4输出:2示例 2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。提示:0 <= x <原创 2022-04-24 22:11:55 · 411 阅读 · 0 评论 -
算法 最后一个单词的长度
最后一个单词的长度1.题目2.解法2.1js版1.题目给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5解释:最后一个单词是“World”,长度为5。示例 2:输入:s = " fly me to the moon "输出:4解释:最后一个单词是“moon”,长度为4。示例 3:输入:s = “luff原创 2022-04-21 23:24:25 · 110 阅读 · 0 评论 -
算法题学习 加一
1.题目给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3] 输出:[1,2,4] 解释:输入数组表示数字 123。 示例 2:输入:digits = [4,3,2,1] 输出:[4,3,2,2] 解释:输入数组表示数字 4321。 示例 3:输入:digits = [0] 输出:[1]提示:1 <= d原创 2022-04-19 16:35:32 · 124 阅读 · 0 评论 -
算法 罗马数字转整数
算法 罗马数字转整数1.题目2.方法2.1枚举法(没得办法)1.题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X +原创 2022-03-03 21:11:37 · 103 阅读 · 0 评论 -
算法 回文数
算法 回文数1.题目2.方法2.1整数反转法2.2整数反转法(反转一半)1.题目给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输原创 2022-03-02 14:36:06 · 454 阅读 · 0 评论 -
算法 两数之和
算法 两数之和1.题目2.方法2.1暴力解法2.2哈希表解法1.题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。eg:示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0,原创 2022-03-01 16:43:24 · 101 阅读 · 0 评论