Loading

正文内容加载中...
posted @ 2017-07-29 09:55 Grey Zeng 阅读(252) 评论(4) 推荐(2) 编辑
摘要: 作者:Grey 原文地址:超级洗衣机问题 题目链接:LeetCode 517. 超级洗衣机问题 主要思路 有两个显而易见的结论: 假设所有衣服的数量之和是sum,如果sum % N != 0,则无论如何都无法做到让所有洗衣机平分衣服。 假设洗衣机的数量是size,那么每个洗衣机需要分担avg = s 阅读全文
posted @ 2022-06-01 19:47 Grey Zeng 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文链接:正则表达式匹配问题 问题链接 LeetCode 10. 正则表达式匹配 暴力解法 先过滤掉无效参数,比如: 在s串中,不能有.和*两个字符, 在p串中,两个*不能相邻,*不能出现在p串的开始位置。 以上两种情况下,直接返回false即可。 接下来,我们定义递归函数 bool 阅读全文
posted @ 2022-05-31 19:04 Grey Zeng 阅读(205) 评论(0) 推荐(1) 编辑
摘要: 作者:Grey 原文地址:子数组或者子矩阵的最大累加和问题 子数组的最大累加和 题目链接:LeetCode 53. 最大子数组的和 主要思路: 设置dp数组,长度和原始数组一样,dp[i]表示必须以i位置结尾的子数组,最大累加和是多少,设置一个全局max,获取dp数组的最大值,即为原始数组的最大子数 阅读全文
posted @ 2022-05-30 13:51 Grey Zeng 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:寻找两个正序数组中的中位数 题目链接 LeetCode 4. 寻找两个正序数组中的中位数 例如:nums1数组是 [1,2], nums2 数组是 [3,4] 那么这两个数组的合并数组是[1,2,3,4] ,所以中位数 (2 + 3) / 2 = 2.5 再比如:nums1 阅读全文
posted @ 2022-05-29 20:14 Grey Zeng 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:单词搜索系列问题 LeetCode 79. 单词搜索 总体思路是:枚举从board的每个位置开始,看能否走出给定的单词,伪代码如下: for (int i = 0; i < board.length; i++) { for (int j = 0; j < board[0]. 阅读全文
posted @ 2022-05-28 19:23 Grey Zeng 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:买卖股票的最佳时机系列问题 LeetCode 121. 买卖股票的最佳时机 主要思路:因为只有一股可以交易,所以我们可以枚举必须以i位置作为卖出时机的情况下,得到的最大收益是多少。如果我们得到每个i位置的最大收益,那么最大收益必是所有位置的最大收益的最大值。 使用两个变量: 阅读全文
posted @ 2022-04-23 14:50 Grey Zeng 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址: 最长递增子序列 问题描述 LeetCode 300. 最长递增子序列 说明:这里的递增指的是严格递增,相等的时候不算递增。 暴力解法 dp[i]表示: 必须以i位置结尾的最长递增子序列是多少,如果求出了每个位置的dp[i]值,最大的dp[i]值,就是最长递增子序列的长度 阅读全文
posted @ 2022-04-16 17:12 Grey Zeng 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址: 使用加强堆结构解决topK问题 题目描述 LintCode 550 · Top K Frequent Words II 思路 由于要统计每个字符串的次数,以及字典序,所以,我们需要把用户每次add的字符串封装成一个对象,这个对象中包括了这个字符串和这个字符串出现的次数。 阅读全文
posted @ 2022-04-10 11:26 Grey Zeng 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:使用二分法来解决的问题 在一个有序数组中,找某个数是否存在 OJ见:LeetCode 704. Binary Search 思路: 先得到中点位置,中点可以把数组分为左右半边。 如果中点位置的值等于目标值,直接返回中点位置。 如果中点位置的值小于目标值,则去数组左边按同样的 阅读全文
posted @ 2022-03-07 19:05 Grey Zeng 阅读(272) 评论(0) 推荐(1) 编辑
摘要: 作者:Grey 原文地址:Linux下安装Nginx 版本 Nginx:1.21.6 操作系统:CentOS 7/Debian 11 安装必要工具和依赖 yum -y install wget gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl o 阅读全文
posted @ 2022-02-27 20:58 Grey Zeng 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:二叉树的先,中,后序遍历 说明 本文主要介绍了二叉树的先序,中序,后序遍历。并且分别用如下三种方式实现: 递归方法 非递归(使用栈) Morris遍历方法,空间复杂度可以做到O(1) 示例二叉树 数据结构 public static class TreeNode { int 阅读全文
posted @ 2022-02-27 15:56 Grey Zeng 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:使用线段树解决数组任意区间元素修改问题 要解决的问题 数组任意区间内的元素修改,增加,求和,时间复杂度都要达到O(logN)水平, 方法说明如下: L...R上都加V void add(L, R, V, arr) L...R上的值都更新成V void update(L, R 阅读全文
posted @ 2022-02-24 13:19 Grey Zeng 阅读(211) 评论(0) 推荐(1) 编辑
摘要: 作者:Grey 原文地址:加油站的良好出发点问题 题目描述 题目链接 思路 暴力解法 O(N^2) 我们可以通过生成辅助数组来验证良好出发点 int[]h 这个数组的长度和cost数组长度一致,且这个数组的每个元素的生成逻辑是: h[i]=gas[i]-cost[i]; 我们可以很容易得到一个结论: 阅读全文
posted @ 2022-02-08 20:14 Grey Zeng 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:滑动窗口最大值 题目描述 题目链接 思路 数组为num, 滑动窗口大小是k,首先两个极端情况: 情况1,如果k=1,则直接返回原数组即可(滑动窗口大小为1,那么每个窗口的最小值/最大值就是其本身) 情况2,如果k == num.length, 那么返回一个数组大小为1的数组 阅读全文
posted @ 2022-02-07 18:43 Grey Zeng 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址: 设计模式学习笔记 UML和代码 UML图 代码 软件设计七大原则 设计原则 一句话归纳 目的 实例 开闭 对扩展开放,对修改关闭 降低维护带来的新风险 设计模式六大原则(六) 开闭原则 依赖倒置 高层不应该依赖低层 更利于代码结构的升级扩展 设计模式六大原则(三) 依赖倒 阅读全文
posted @ 2022-01-07 16:34 Grey Zeng 阅读(242) 评论(1) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:线段最大重合区域问题 题目描述 题目链接 暴力解 首先得到线段的最大值和最小值 最大值和最小值按单位1等分,看每条线覆盖了多少,抓一下全局max 时间复杂度O((max-min)*N) 堆解法 O(N*logN) 准备小根堆(之所以设置为堆,是因为要处理重复值,如果有序表的 阅读全文
posted @ 2022-01-06 22:17 Grey Zeng 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 作者: Grey 原文地址:Spring的轻量级实现 本文是参考公众号:码农翻身 的从零开始造Spring 教程的学习笔记 源码 github 开发方法 使用TDD的开发方法,TDD的开发流程是: 写一个测试用例 运行:失败 写Just enough的代码,让测试通过 重构代码保持测试通过, 然后循 阅读全文
posted @ 2021-11-13 12:30 Grey Zeng 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:单机百万连接调优和Netty应用级别调优 说明 本文为深度解析Netty源码的学习笔记。 单机百万连接调优 准备两台Linux服务器,一个充当服务端,一个充当客户端。 服务端 操作系统:CentOS 7 配置:4核8G IP:192.168.118.138 客户端 操作系统 阅读全文
posted @ 2021-10-29 07:35 Grey Zeng 阅读(696) 评论(0) 推荐(1) 编辑
摘要: 作者: Grey 原文地址:有序表和搜索二叉树 搜索二叉树 定义:任何一个节点,左树都比这个节点小,右数都比这个节点大,经典搜索二叉树是没有重复值的,有重复值就压在一起 构造搜索二叉树方法: 比当前节点大,就往右边滑,滑到空就把节点加上 比当前节点小,就往左边滑,滑到空就把节点加上 搜索二叉树的增删 阅读全文
posted @ 2021-10-14 23:04 Grey Zeng 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:斐波那契数列问题和扩展 斐波那契数列介绍 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2) 阅读全文
posted @ 2021-10-09 23:23 Grey Zeng 阅读(338) 评论(0) 推荐(1) 编辑