刷题笔记
文章平均质量分 94
Xpectuer
人总该为一点美好的东西活着。
展开
-
【刷题笔记】更骚的并查集
更骚的并查集写在前面打个小广告:最近在学Golang,开了用Go语言实现算法的仓库,有兴趣的同学们可以来贡献哦~网址在这⬇️Project alGo如果你每天有力扣每日一题的习惯,你可能会感叹:1月可真是一个图论月确实如此,而并查集是解决连通分量问题以及具有传递关系问题的特色解法并查集并查集本身有两个优化方案:路径压缩在 Find() 方法中,将子树的节点拉到根节点,如此提高查找效率。按秩合并维护每个节点子树的高度或节点数量,在合并时考察这个值。我们要清楚并查原创 2021-01-16 16:03:39 · 226 阅读 · 0 评论 -
【刷题笔记】位运算:从人脑到电子脑的演变
【刷题笔记】位运算: 从人脑到电子脑的演变理解位运算对于非计算机科学专业的选手需要一个思考的过程然而对于计算机科学的选手来说,从理解简单的位运算到复杂的复合位运算仍然是一个过程这里就实用主义的角度出发,总结一下做到的题目用到的复合位运算2的幂n&(n-1) 这个操作可以将一个二进制数 nnn 最右边的1归零>>> x=0b100101010100>>> bin(x&(x-1))'0b100101010000'在二进制数中,任何2的幂都原创 2020-12-23 21:27:02 · 141 阅读 · 0 评论 -
【刷题笔记】leetcode 46.全排列 | 优质解法
学习笔记【刷题笔记】46.全排列|优质解法思路:回溯基本盘:我们每次递归,记录已访问的元素。从剩下的元素中取,取完回溯。状态树是每层决定放入一个元素。新思路今天复习的时候,看到外国老哥相当精妙的理解。就来做一个汉化主要思路有点像插入排序每次的决定从决定放入哪个元素到决定下一个元素放在哪个位置。具体来讲,比如我的输入是[1, 2, 3],先拿一个[1],剩下[2, 3]按照顺序,我们拿[2], 我们尝试将[2]放到[1]之前或之后,出现两种情况[1, 2][2, 1]转载 2020-11-18 17:16:25 · 162 阅读 · 0 评论 -
【刷题笔记】三种方法通关leetcode33.旋转排序数组
写在前面前段时间虽说一直保持刷题,但是由于课业繁重,经过组织上的反复权衡,决定停更一段时间。现在正好是课业的空窗期,于是又来水博客力。看官们觉得不错可以赏脸点个关注再走哦~我的 github二分查找的使用条件二分查找的 O(logn)O(logn)O(logn) 高效必然有局限性:这里就是前提条件:1. 有序序列2. 存在上下界3. 随机访问特性代码模板left, right = 0, len(array) - 1while left <= right: mid = (l原创 2020-11-12 19:17:54 · 124 阅读 · 0 评论 -
【leetcode刷题记#week02】栈、队列、双端队列
20.有效的括号检测一段字串序列中的有效括号栈方法(C++)创建一个栈结构,若是左括号,则入栈若是右括号,则检测栈顶是否是相应左括号细节:检测输入长度,若是0,直接返回true;若长度为奇数,返回false if(!s.length()) return true; if(s.length%2=1) return false;建立散列表(方便检测) unordered_map<char, char> pairs = {原创 2020-10-27 09:59:26 · 179 阅读 · 0 评论 -
【leetcode刷题记#week01】数组,顺序结构,双指针
【leetcode刷题记#week01】数组,顺序结构,双指针写在前面本刷题笔记平台:Leetcode语言: C++【 leetcode# 26】 删除数组的重复项BF解法建立一个新的数组 rs,一个临时变量 temptemp存取前一个元素遍历输入的数组每次存取前一个元素到temp变量每次检查temp与现在的当前的数组元素是否相等相等,跳过不相等,存入rs数组返回rs数组的长度(这里不给出代码,请读者有兴趣自行实现)双指针法定义两个指针 i,j原创 2020-10-21 13:11:12 · 125 阅读 · 1 评论 -
手把手教你 N皇后 回溯解法(Solving The N Queens Puzzle Using Backtracking)
手把手教你 N皇后 回溯解法(Solving The N Queens Puzzle Using Backtracking)写在前面 本人没有国际象棋经验,仅仅是看了几篇攻略写的本题,正好是每日打卡,就把这个问题拿出来讲一讲。本笔记实现完全是 C++,当然如果你是其他平台,算法的思路是一种常量,只要抓住方法,一样可以实现。问题描述The n-queens puzzle is the problem of placing n queens on an n×n chessboard such t原创 2020-10-17 23:23:19 · 294 阅读 · 0 评论 -
【刷题】子集和问题的回溯剪枝解法
子集和问题的回溯剪枝解法1. 问题1.1 原文描述 问题参考的是 程振波老师的 《Design and Analysis of Algorithm Using Python》2.5.3节的描述:输入给定整数集,问是否存在该整数集的子集,使得该子集元素的和为 0。比如给定的整数集合为 [-7, -3 ,-2, 5, 8],存在集合的子集 [-3, -2, 5],该子集和为0。1.2 IO示例input: -2 -3 4 50output:110100002. 解法2.1原创 2020-10-15 12:47:08 · 937 阅读 · 0 评论 -
【刷题】Codeup 1928 日期差值
Codeup 1928 日期差值题目描述:输入两个日期,返回相差天数input:2013010120130105output:5思路首先假设第一个日期比第二个日期小,若不是,则互换位置 if(time1 > time2 ){ int temp= time1; time1 =time2; time2 = temp; }处理平闰年建立二维数组,按照[月份][平/闰]的下标存储int month[13.原创 2020-09-30 10:46:46 · 129 阅读 · 0 评论 -
【二叉查找树/leetcode#538】图解Morris保姆级教学
Morris: 二叉树遍历的更好方案平台:C++Morris算法是什么一种用于二叉树的遍历算法,可以将传统的栈遍历和递归遍历带来的最差O(n)O(n)O(n)的空间复杂度降低到O(1)O(1)O(1)Morris’s in GeneralMorris算法抛弃了栈结构(Stack)来做DFS(Depth First Search),转而利用指针的连接来存取前驱节点来源题解:Leetcode#538官方题解给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Gre..原创 2020-09-21 18:37:03 · 196 阅读 · 0 评论