leetcode
蝉衣少年
哈尔滨工业大学|计算机学院|计算机科学与技术
展开
-
leetcode 463. 岛屿的周长(bfs)
leetcode 463. 岛屿的周长(bfs)题目描述:给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。 示例 :输入:[[0,1,0,0],原创 2020-10-30 22:35:44 · 255 阅读 · 0 评论 -
回文素数 prime palindrome(构造回文数)
题目描述:给定x,y,输出[x,y]中所有的回文素数(即既是回文数也是素数,比如101, 131),其中5 <= a < b <= 1000000000时间限制:5s内存限制:512M思想:1.暴力枚举所有的数据考虑从5~1e9枚举,先判断是不是回文数,然后判断是不是素数,然后输出(当然也可以反过来,先判断是不是素数然后判断是不是回文数),这里时间上肯定会有差别,首先回文数与素数的密度是不一样的,以及,判断回文数与判断素数的时间复杂度也是不一样的,那么这里的时间复杂度至少是O(原创 2020-10-20 20:28:46 · 772 阅读 · 2 评论 -
leetcode 637. 二叉树的层平均值(两个栈)
二叉树的层平均值给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。 提示:节点值的范围在32位有符号整数范围内。解题思路这题我使用两个栈去解决。1.首先需要两个栈s1,s2,遍历第一层时,存入s1,然后从s1中开.原创 2020-09-12 12:24:07 · 108 阅读 · 0 评论 -
leetcode 面试题17.14. 最小的k个数(小根堆)
题目描述:面试题 17.14. 最小K个数设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。示例:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]提示:0 <= len(arr) <= 1000000 <= k <= min(100000, len(arr))这题很明显可以使用一个小根堆来解决:1.首先在给定数组构造一个小根堆;2.然后每次取出最小的元素加入答案的数组,然后整堆即可即可。时原创 2020-09-05 15:16:55 · 331 阅读 · 0 评论 -
leetcode 647 回文子串(暴力)
leetcode 647 回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:输入的字符串长度不会超过 1000 。解题思路很显然这是一道可以暴力解决的问题,不明白为什么是中原创 2020-08-19 15:40:52 · 132 阅读 · 0 评论 -
leetcode 1046 最后一块石头的重量(大堆)
leetcode 1046 最后一块石头对的重量题目描述:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,1]输原创 2020-08-19 14:47:18 · 166 阅读 · 0 评论