Loading

摘要: 并查集,就其字面意思理解,合并查找的集合。 其主要是用来判断联通问题,也就是图中两点间是否存在道路可以连通。 并查集主要分为两种操作: 合并 查找 下面具体描述。 合并 我们简化为数组问题,假设数组int parent[N]表示图中N个节点的父节点指向,这里的指向并不是图中实际指向,只是用来并查集内 阅读全文
posted @ 2022-07-25 19:41 songjinze 阅读(56) 评论(0) 推荐(0)
摘要: 拓扑排序的原则在于,每次找到一个没有入边的节点,将其输出后并标记(或者输出后删除,并删除所有其出边,是一个意思)。 当然最后结果看需要的排序方向,如果是反着来的,也可以将入边和出边换一下,不影响结果。 因此寻找这个没有出边的节点,就可以三种方式,一种是DFS(深度优先搜索),一种是BFS(广度优先搜 阅读全文
posted @ 2021-03-28 12:51 songjinze 阅读(109) 评论(0) 推荐(0)
摘要: 面向对象设计原则 之所以出现这些原则,是因为在软件的设计中面对不可变的需求,为了使软件可控制,在设计层面尽量规范化。 当然这些设计原则在日常使用中做到面面俱到是非常困难的。只有非常有经验的人士才能尽量引用的很好。 原则 开闭原则(OCP) 依赖倒置原则(DIP) 单一责任原则(SRP) 里氏替换原则 阅读全文
posted @ 2020-10-14 15:58 songjinze 阅读(153) 评论(0) 推荐(0)
摘要: HTTP状态码汇总 一般来说我们见得最多的一个状态码是404(NOT FOUND),但其实状态码还有很多。 什么是状态码? 当浏览者访问一个网站时,浏览者的浏览器会向网页所在服务器发送请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头用以相应浏览器的请求。 状态码 阅读全文
posted @ 2020-10-14 15:29 songjinze 阅读(86) 评论(0) 推荐(0)
摘要: Boyer-Moore Voting Algorithm 摩尔投票算法 算法思想 对于一个数组nums,寻找出现次数最多的数。 如果我们遍历这个数组,那么对于每一个当前的数currentNum,接下来的遍历可以采用投票的方式,即如果接下来的数和currentNum相等,则票数+1,不相等则-1。 显 阅读全文
posted @ 2020-10-14 15:27 songjinze 阅读(237) 评论(0) 推荐(0)
摘要: 编辑距离算法(Levenshtein Distance) 编辑距离算法,又叫字符串相似度算法。 算法介绍 最近刷CodeWars时遇到了一道题,题目表述如下: I'm sure, you know Google's "Did you mean ...?", when you entered a se 阅读全文
posted @ 2020-10-14 15:23 songjinze 阅读(395) 评论(0) 推荐(0)
摘要: 题目描述 Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its p 阅读全文
posted @ 2020-10-14 15:22 songjinze 阅读(66) 评论(0) 推荐(0)
摘要: 题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入: intervals = [[1,3],[6,9]], newInterval = [2,5] 输出: [[1,5], 阅读全文
posted @ 2020-10-14 15:19 songjinze 阅读(105) 评论(0) 推荐(0)
摘要: 题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 解决思路 这里采用动态规划的思想。跑时较长但有代表性 阅读全文
posted @ 2020-10-14 15:17 songjinze 阅读(81) 评论(0) 推荐(0)