LeetCode
嗔怪
学无止境
展开
-
【死磕动态规划系列】1139. 最大的以 1 为边界的正方形
问题描述 给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。 示例 1: 输入:grid = [[1,1,1],[1,0,1],[1,1,1]] 输出:9 示例 2: 输入:grid = [[1,1,0,0]] 输出:1 提示: 1 <= grid.length <= 100 1 <= grid[0].length <= 100 grid[i][j] 为 0 或 1原创 2020-07-27 13:34:41 · 240 阅读 · 0 评论 -
sunday匹配算法实现strStr()
背景 sunday匹配算法是Daniel M.Sunday于1990年提出的字符串模式匹配。并且以其名字命名。 主要思想 sunday算法的主要思想是当父串和子串不匹配时,父串的滑动窗口移动尽可能多的字符,提高匹配效率。 原理 1.设置一个滑动窗口,窗口大小等于子串长度。 2.通过比较滑动窗口和子串,匹配是否相等。 3.若不相等,滑动窗口向后移动。 4.循环步骤2,3直到匹配或滑动窗口无法后移为止。 提高效率的地方在于滑动窗口向后移动的多少,为了保证尽可能多的移动并且保证不出现遗漏,要设置一个偏移表,查找每原创 2020-05-19 13:54:11 · 224 阅读 · 0 评论 -
合并石子
题目内容 设有N堆石子排成一排,其编号为1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。 例如有4堆石子分别为 1 3 5 2, 我们可以先合并1、2堆,代价为4,得到4 5 2, 又合并 1,2堆,...原创 2020-04-02 20:12:59 · 559 阅读 · 0 评论 -
141.环形链表
题目: 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 示例 2: 输入:head = [1,2], pos = 0 输出:tr...原创 2019-07-24 17:25:32 · 81 阅读 · 0 评论 -
142. 环形链表 II(C语言实现)
题目: 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:tail connects to node index ...原创 2019-07-24 22:39:06 · 342 阅读 · 0 评论