算法练习-进阶篇
文章平均质量分 60
算法练习-进阶篇
了迹奇有没
刺客排行榜952712138,兼纸后端开发
展开
-
滑动窗口算法用法及实题详解
在力扣常用解题法中,我们常常会看到这些:滑动窗口双指针快慢指针/ 链表题目原地链表翻转区间合并无序限定范围的数组元素查找O(N)BFS树的DFSDFS/递归/回溯法双堆模式2分变种前K大的数模式HEAPK路归并DP 动态规划排序算法树和链表结合树的重新构建位运算字符串stackmatharray二叉搜索树快慢指针、动态规划、链表、树的遍历,这些已经是烂大街的概念。而偏偏是最常用的,也排在首位的滑动窗口算法,却并不为人熟知,什么是滑动窗口算法呢??.原创 2021-02-21 10:56:19 · 1112 阅读 · 0 评论 -
牛年前的一小结——打响本命年的第一枪,继续刷题!
经过一段时间的小尝试,摸索出了一点点头儿吧。总结一下子。关于面试的java,像我这个经验层次(1-2year普通厂)的都不会太难。最多超不出力扣中等难度。多练习链表、树、指针类的比较基础的题目;有解题方法并不是最重要的,因为你第一个想法的解题思路一定不是最优的。不要停在第一步!一定要记住。然后就是编程规范,我也是最近才知道,华为和阿里的编程规范相差还是有的。之前一直看的阿里巴巴编程规范,到了华为这里不适用了,被数落得一通。自信很重要,如果你故作谦卑,不好意思,别人以为你是真的菜。学了jvm、原创 2021-02-10 15:29:00 · 166 阅读 · 3 评论 -
力扣解题——求根到叶子节点数字之和
难度:中等题目:给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3]1/ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点路径 1->3 代表数字 13.因此,数字总和 = 12 + 13 = 25.原创 2020-10-29 15:35:25 · 258 阅读 · 0 评论 -
通用解题法——回溯算法(理解+练习)
积累算法经验,积累解题方法——回溯算法,你必须要掌握的解题方法!什么是回溯算法呢?回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。最简单的.原创 2020-06-20 18:28:43 · 776 阅读 · 0 评论 -
什么是原码、反码、补码?什么是按位与?范围数字按位与!
前言:学过计算机基础的大家都知道什么是二进制,什么是“与”运算,这里先给大家复习一下。举一个简单的例子:5的二进制表示是0101(补齐4位)7的二进制表示是0111(补齐4位)那么5&7=多少呢?这里给大家普及一下与计算的规则:参与运算的两个数均以补码出现只有对应的两个二进位都为1时,结果位才为1上面提到的补码是什么呢??二进制计算有三种“码”——原码、反码、补码????1.原码就是我们上面的那种符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8原创 2020-06-16 16:07:07 · 873 阅读 · 0 评论 -
伍六七带你学算法——被忽视的数学公式
中学时候学习那么多的数学,却没有人告诉我们这些数学公式我们以后会用到哪里?疑惑了十好几年,直到,你进入it行业,它的舞台来了!在力扣上有一道中度难度的题,题目是这样的????(图片质量不是很好!)题目: 求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。高中毕业后把数学一下子抛之脑后的我一下子懵了,作为一个真正意义上的搬砖工,我已经只会for if,不让我循环??怎么做呢?大概让以前的老师直到我这样可能想原创 2020-06-02 17:50:05 · 531 阅读 · 2 评论 -
伍六七带你学算法 动态规划 ——不同路径
力扣 62. 不同路径难度 中等一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1 向右 -> 向右 -> 向下2 向右 -> 向下 ->原创 2020-05-14 16:26:06 · 329 阅读 · 0 评论 -
伍六七带你学算法 进阶篇-生命游戏
有趣的算法题–生命游戏难度-中等根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。想要体验生命游戏的小伙伴可以到这里——>生命游戏进入正题:给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,...原创 2020-04-02 10:32:22 · 445 阅读 · 0 评论 -
伍六七带你学算法 进阶篇-排序算法
给定一个整数数组 nums,将该数组升序排列。示例 1:输入:[5,2,3,1]输出:[1,2,3,5]示例 2:输入:[5,1,1,2,0,0]输出:[0,0,1,1,2,5]各排序算法解法如下: (如想要了解算法排序原理,见> 十大算法)public class _912排序数组 { public int[] sortArray(int[] nums) {...原创 2020-03-31 10:05:17 · 277 阅读 · 0 评论 -
伍六七带你学算法 进阶篇-三数之和
三数之和 难度-中等题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]来...原创 2020-03-21 10:31:05 · 294 阅读 · 0 评论