最大黑方阵
面试题 17.23. 最大黑方阵https://leetcode-cn.com/problems/max-black-square-lcci/ ``` 题目: 给定一个方阵,其中每个单元像素非黑即白。设计一个算法,找出 4 条边皆为黑色像素的最大子方阵。 返回一个数组 r,
面试题 17.23. 最大黑方阵https://leetcode-cn.com/problems/max-black-square-lcci/ ``` 题目: 给定一个方阵,其中每个单元像素非黑即白。设计一个算法,找出 4 条边皆为黑色像素的最大子方阵。 返回一个数组 r,
记录一次不太愉快的code test 输入一个二维数组,只有0,1元素。问1围起来的面积 ``` 思路是找没有被1围起来的棋子,遍历四条边,如果是0,则与它相邻的元素0肯定没有被围起来(继续深度优先搜索到所有相邻的0,且改变其状态,免得下一个位置遍历的时候重复搜索)。然后求剩下的面积即可 class
31. 下一个排列https://leetcode-cn.com/problems/next-permutation/ ``` 题目: 实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。 如果不存在下一个更大的排列
215. 数组中的第K个最大元素https://leetcode-cn.com/problems/kth-largest-element-in-an-array/ <font color=goldenrod>中等</font> ``` 题目: 给定整数数组 nums 和整数 k,请返
- 反转类 - 206.反转链表https://leetcode-cn.com/problems/reverse-linked-list/ <font color=green>简单</font> - 92.反转链表 IIhttps://leetcode-cn.c
嬴彻 笔试题目 POJ 1160 Post Office 区间dp,从n个村庄选m个点建邮局,使得每个村庄到邮局的距离和最小 ``` 题目: 一条直线上有居民点,邮局只能建在居民点上。给定一个有序整形数组arr,每个值表示居民点的一维坐标,再给定一个正数num,表示邮局数量。 选择num
- 两数 - 1. 两数之和https://leetcode-cn.com/problems/two-sum/ <font color=green>简单</font> - 三数 - 15. 三数之和https://leetcode-cn.com/problems/3s
930.和相同的二元子数组https://leetcode-cn.com/problems/binary-subarrays-with-sum/ ``` from collections import defaultdict class Solution: def numSubarr
726.原子的数量https://leetcode-cn.com/problems/number-of-atoms/ ``` from collections import defaultdict, deque class Solution: def countOfAtomssel
160.相交链表https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ ``` Definition for singly-linked list. class ListNode: def
连续子数组的和 523.连续的子数组和https://leetcode-cn.com/problems/continuous-subarray-sum/ 1.前缀法 ``` class Solution: def checkSubarraySumself, nu
合并两个有序链表 21.合并两个有序链表https://leetcode-cn.com/problems/merge-two-sorted-lists/ 1.垃圾写法 ``` Definition for singly-linked list. class Lis
快排 堆排序 归并排序 冒泡 方法一:快速排序 ``` 复杂度分析 时间复杂度:基于随机选取主元的快速排序时间复杂度为期望 Onlogn,其中 n 为数组的长度。详细证明过程可以见《算法导论》第七章,这里不再大篇幅赘述。 空间复杂度:Oh,其中 h 为快速排序递
231.2的幂https://leetcode-cn.com/problems/power-of-two/ ``` 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2
> 堆是优先队列(Priority Queue)的实现,可以用于 动态选取 一个集合中的最值元素。堆通常指二叉堆,堆包括最大堆和最小堆:最大堆的每一个结点(除了根结点)的值不大于其父结点;最小堆的每一个结点(除了根结点)的值不小于其父结点。 ``` python 有内置堆模块,可以堆list直接操
``` 示例 1: 输入:intervals = 1,3,2,6,8,10,15,18 输出:1,6,8,10,15,18 解释:区间 1,3 和 2,6 重叠, 将它们合并为 1,6. ``` --- 垃圾写法 ``` class Solut
461. 汉明距离https://leetcode-cn.com/problems/hamming-distance/ 477.汉明距离总和https://leetcode-cn.com/problems/total-hamming-distance/ 1. 46
二叉树定义https://zh.wikipedia.org/wiki/%E4%BA%8C%E5%8F%89%E6%A0%91 遍历 深度优先 Depth-First-Search,DFS 递归 前序 中序 后序
1.递归 1.1 前序 ``` Definition for a binary tree node. class TreeNode: def initself, val=0, left=None, right=None: self.v