给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回锯齿形层次遍历如下: [ [3], [20,9], [15,7] ...
分类:
其他好文 时间:
2020-07-22 02:00:17
阅读次数:
76
1. 搜索算法 在树(图/状态集)中寻找特定节点 深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构。 图上的搜索算法就是,在图中找出从一个顶点出发,到另一个顶点的路径。图上的搜索算法有深度优先、广度优先搜索算法,和A*A?、IDA*IDA? 等启发式搜索算法。 广度优先搜索和深度优先搜索 ...
分类:
编程语言 时间:
2020-07-19 23:30:25
阅读次数:
103
问题描述 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]] 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations-ii 解答 ...
分类:
其他好文 时间:
2020-07-19 17:55:22
阅读次数:
60
太久没学OI了, 代码都不会写了, 先写一篇BFS练练手, 是我太菜了qwq #include<cstdio> #include<queue> #include<iostream> #include<cstring> using namespace std; struct node{ int x,y ...
分类:
其他好文 时间:
2020-07-19 16:30:54
阅读次数:
69
此题和之前的剑指offer32-I、II.从上到下打印二叉树大致相同在BFS的基础上只是添加了一个重排序的过程。具体代码如下: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * st ...
分类:
其他好文 时间:
2020-07-18 11:18:07
阅读次数:
58
BFS 解法: private final void addRow(Stack<TreeNode> stack, int v) { while (!stack.empty()) { TreeNode node = stack.pop(); TreeNode newNodeLeft = new Tre ...
分类:
其他好文 时间:
2020-07-17 13:49:00
阅读次数:
51
思路染色问题,可以使用dfs,也可以使用bfs代码class Solution { boolean valid = true; int[][] graph; public boolean isBipartite(int[][] graph) { this.graph = graph; int n =... ...
分类:
其他好文 时间:
2020-07-16 21:42:04
阅读次数:
58
给定两个数 $d \le 500$ 和 $s \le 5000$,求最小的 $n$ 使得 $d|n$ 并且 $n$ 的各位数字之和为 $s$。 ...
分类:
其他好文 时间:
2020-07-16 21:11:17
阅读次数:
57
原题: 1956: 棋盘(chess) 时间限制: 1 Sec 内存限制: 256 MB 题目描述 有一个m × m的棋盘,棋盘上每一个格子可能是红色、黄色或没有任何颜色的。你现在要从棋盘的最左上角走到棋盘的最右下角。 任何一个时刻,你所站在的位置必须是有颜色的(不能是无色的), 你只能向上、 下、 ...
分类:
其他好文 时间:
2020-07-16 00:08:22
阅读次数:
88
题目大意: 给你两个4*4的01矩阵A、B,要求你从矩阵A中将'1'移动若干步(移动即与相邻的'0'交换位置),变换为B,输出最小步数. 基本思路: 本题数据较小,固定为4*4,第一时间想到状压(2^16),用状压代替hash比较容易.由于要求最小步数,bfs扫描到B矩阵即可输出答案,复杂度远小于d ...
分类:
移动开发 时间:
2020-07-16 00:07:24
阅读次数:
90