Loading

随笔分类 -  算法和数据结构

摘要:与图相关的一些算法 作者:Grey 原文地址: 博客园:与图相关的一些算法 CSDN:与图相关的一些算法 图的说明 线性表中的元素是“一对一”的关系,树中的元素是“一对多”的关系,图结构中的元素则是“多对多”的关系。 图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱 阅读全文
posted @ 2022-09-29 18:57 Grey Zeng 阅读(46) 评论(0) 推荐(0) 编辑
摘要:荷兰国旗问题与快速排序算法 作者:Grey 原文地址: 博客园:荷兰国旗问题与快速排序算法 CSDN:荷兰国旗问题与快速排序算法 荷兰国旗问题 问题描述 给定一个整数数组,给定一个值 K,这个值在原数组中一定存在,要求把数组中小于 K 的元素放到数组的左边,大于K的元素放到数组的右边,等于 K 的元 阅读全文
posted @ 2022-09-28 20:42 Grey Zeng 阅读(811) 评论(0) 推荐(2) 编辑
摘要:使用卡特兰数来解决的问题 作者:Grey 原文地址: 博客园:使用卡特兰数来解决的问题 CSDN:使用卡特兰数来解决的问题 通项公式 k(0) = 1, k(1) = 1,如果接下来的项满足: k(n) = k(0) x k(n - 1) + k(1) x k(n - 2) + …… + k(n - 阅读全文
posted @ 2022-09-27 19:26 Grey Zeng 阅读(393) 评论(0) 推荐(0) 编辑
摘要:红绿正方形染色问题 作者:Grey 原文地址: 博客园:红绿正方形染色问题 CSDN:红绿正方形染色问题 题目描述 有一些排成一行的正方形。每个正方形已经被染成红色或者绿色。现在可以选择任意一个正方形然后用这两种颜色的任意一种进行染色,这个正方形的颜色将会被覆盖。目标是在完成染色之后,每个红色 R 阅读全文
posted @ 2022-09-25 18:40 Grey Zeng 阅读(68) 评论(0) 推荐(0) 编辑
摘要:累加出整个范围所有的数最少还需要几个数 作者:Grey 原文地址: 博客园:累加出整个范围所有的数最少还需要几个数 CSDN:累加出整个范围所有的数最少还需要几个数 题目描述 给定一个有序的正数数组 arr 和一个正数 aim ,如果可以自由选择 arr 中的数字,想累加得到 1~aim 范围上所有 阅读全文
posted @ 2022-09-24 15:13 Grey Zeng 阅读(299) 评论(0) 推荐(0) 编辑
摘要:重建二叉树问题 作者:Grey 原文地址: 博客园:重建二叉树问题 CSDN:重建二叉树问题 说明 本题涉及到二叉树的各种遍历,对于二叉树的各种遍历,可以参考二叉树的先,中,后序遍历(递归,非递归) 根据中序遍历和后序遍历重建二叉树 链接地址:LeetCode 106. Construct Bina 阅读全文
posted @ 2022-09-21 14:14 Grey Zeng 阅读(420) 评论(0) 推荐(0) 编辑
摘要:二维数组的最小路径和问题 作者:Grey 原文地址: 博客园: 二维数组的最小路径和问题 CSDN: 二维数组的最小路径和问题 题目描述 LintCode 110 · Minimum Path Sum 给定一个只含非负整数的m ∗ n网格,找到一条从左上角到右下角的可以使数字和最小的路径。 暴力解法 阅读全文
posted @ 2022-09-20 22:12 Grey Zeng 阅读(426) 评论(0) 推荐(0) 编辑
摘要:使用贪心来解决的一些问题 作者:Grey 原文地址: 博客园:使用贪心来解决的一些问题 CSDN:使用贪心来解决的一些问题 贪心的使用方法 分析业务 根据业务逻辑找到不同的贪心策略 对于能举出反例的策略直接跳过,不能举出反例的策略要证明有效性 使用对数器来验证贪心策略的正确性与否 拼接所有的字符串产 阅读全文
posted @ 2022-09-18 15:11 Grey Zeng 阅读(395) 评论(0) 推荐(0) 编辑
摘要:使用二叉树的递归套路来解决的问题 作者:Grey 原文地址: 博客园:使用二叉树的递归套路来解决的问题 CSDN:使用二叉树的递归套路来解决的问题 说明 二叉树的递归套路本质是二叉树的后序遍历,如果你需要你的左树给你一些信息,右树给你一些信息,然后整合得到当前节点的信息,就可以用二叉树的递归套路。 阅读全文
posted @ 2022-09-17 18:54 Grey Zeng 阅读(490) 评论(0) 推荐(1) 编辑
摘要:累加和为 K 的最长子数组问题 作者:Grey 原文地址: 博客园:累加和为 K 的最长子数组问题 CSDN:累加和为 K 的最长子数组问题 题目描述 给定一个整数组成的无序数组 arr,值可能正、可能负、可能0,给定一个整数值 K,找到 arr 的所有子数组里,哪个子数组的累加和等于 K,并且是长 阅读全文
posted @ 2022-09-16 22:48 Grey Zeng 阅读(359) 评论(0) 推荐(0) 编辑
摘要:乘积小于 K 的子数组 作者:Grey 原文地址: 博客园:乘积小于 K 的子数组 CSDN:乘积小于 K 的子数组 题目链接 LeetCode 713. Subarray Product Less Than K 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 阅读全文
posted @ 2022-09-14 23:10 Grey Zeng 阅读(54) 评论(0) 推荐(0) 编辑
摘要:使用单调栈来解决的一些问题 作者:Grey 原文地址: 博客园:使用单调栈来解决的一些问题 CSDN:使用单调栈来解决的一些问题 单调栈说明 使用单调栈可以实现 数组中任意一个元素的左边和右边离它最近的比它小(大)的数,且时间复杂度\(O(N)\) 先考虑数组中无重复值的情况,题目描述见: 牛客:单 阅读全文
posted @ 2022-09-04 12:43 Grey Zeng 阅读(445) 评论(0) 推荐(0) 编辑
摘要:与归并排序相关的一些问题 作者:Grey 原文地址: 博客园:与归并排序相关的一些问题 CSDN:与归并排序相关的一些问题 归并排序的递归解法 插入,选择,冒泡排序时间复杂度是\(O(N^2)\),归并排序可以做到时间复杂度\(O(N*logN)\)。 归并排序的整体思路是利用递归,先让左边排好序, 阅读全文
posted @ 2022-09-03 17:07 Grey Zeng 阅读(335) 评论(0) 推荐(0) 编辑
摘要:使用打表法找规律 作者:Grey 原文地址: 博客园:使用打表法找规律 CSDN:使用打表法找规律 打表法的使用条件 打表法适合:输入简单,输出也简单(只有一个数),可以暴力把一部分结果打印出来找规律,看下能否找到一个公式来优化代码。 买苹果问题 题目描述见:牛客:买苹果 暴力解法思路 如果是奇数, 阅读全文
posted @ 2022-09-02 22:10 Grey Zeng 阅读(95) 评论(0) 推荐(0) 编辑
摘要:前缀树的设计与实现 作者:Grey 原文地址: 博客园:前缀树的设计与实现 CSDN:前缀树的设计与实现 前缀树即字典树,可以利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。 我们使用搜索引擎的时候,输入 test,后面会自动显示一堆前缀是 test 的东西。这就利用了前缀树结构 阅读全文
posted @ 2022-09-01 19:03 Grey Zeng 阅读(474) 评论(0) 推荐(0) 编辑
摘要:矩阵类问题处理技巧 作者:Grey 原文地址: 博客园:矩阵类问题处理技巧 CSDN:矩阵类问题处理技巧 给定一个正方形矩阵,原地调整成顺时针90度转动的样子 题目链接见:LeetCode 48. Rotate Image 本题主要的限制条件是:原地调整,即不开辟额外的二维数组来做。 主要思路如下 阅读全文
posted @ 2022-08-31 20:50 Grey Zeng 阅读(385) 评论(1) 推荐(0) 编辑
摘要:使用位运算技巧比较两个数的大小 作者:Grey 原文地址: 博客园:使用位运算技巧比较两个数的大小 CSDN:使用位运算技巧比较两个数的大小 题目要求 如何不要用任何比较判断符(\(>\),\(==\),\(<\)),返回两个 32 位整数中较大的那个。 主要思路 方法1(不考虑溢出) 要比较 a 阅读全文
posted @ 2022-08-30 22:21 Grey Zeng 阅读(909) 评论(1) 推荐(0) 编辑
摘要:使用位运算技巧实现加减乘除 作者:Grey 原文地址: 博客园:使用位运算技巧实现加减乘除 CSDN:使用位运算技巧实现加减乘除 说明 题目描述见:LeetCode 29. Divide Two Integers 原题目是:要求不使用乘法、除法和取模运算符实现除法。 我们把题目要求提高一点,不用加减 阅读全文
posted @ 2022-08-29 21:35 Grey Zeng 阅读(833) 评论(2) 推荐(0) 编辑
摘要:位图的设计与实现 作者:Grey 原文地址: 博客园:位图的设计与实现 CSDN:位图的设计与实现 说明 本文内容使用的编程语言是 Java。其他语言有类似的数据结构。 原理 在 Java 中,使用HashSet可以实现如下操作: add(T v) 加入一个元素到HashSet中,重复则覆盖。 co 阅读全文
posted @ 2022-08-28 22:25 Grey Zeng 阅读(516) 评论(0) 推荐(1) 编辑
摘要:栈和队列相关的一些问题 作者:Grey 原文地址: 博客园:栈和队列相关的一些问题 CSDN:栈和队列相关的一些问题 最小栈 题目链接见:LeetCode 155. Min Stack 主要思路 准备两个栈,一个栈叫 stack, 用于记录原始数据信息; 一个栈叫 min,用来存此时原始栈中的最小值 阅读全文
posted @ 2022-08-27 22:16 Grey Zeng 阅读(361) 评论(0) 推荐(1) 编辑