前言 昨天和今天复习了二叉树的前序遍历、中序遍历和后序遍历,找到了一种统一的非递归的方法(即使用一个思路非递归实现二叉树的前序、中序和后序遍历)。 思路 思路本质上还是递归,只不过不通过递归函数显示地递归,而是通过栈模拟递归的过程。 具体思路:https://leetcode-cn.com/prob ...
分类:
其他好文 时间:
2020-07-13 15:41:18
阅读次数:
65
知识点: DP,差分,Bfs 原题面 双倍经验 P3943 星空。 将此题代码交过去可直接 AC,但 P3943 数据较弱,没有卡掉错误的背包解法。 完全背包解法错误原因 详见 题解 P3943 【星空】 - Epworth 的博客。 题意简述 给定一长度为 \(n\) 的 $0$ 串,给定 \(k ...
分类:
其他好文 时间:
2020-07-13 09:25:09
阅读次数:
65
问题:给定一个源区间[x, y]和N个无序的目标区间[x1, y1] [x2, y2] ... [xn, yn],判断源区间是不是在目标区间内(即源区间与[目标区间的并集]是否相交)。 这道题我是少有的不看答案就能把所有解法思考出来的,给了我的笨脑袋一点信心。 简单叙述下两个解法: 解法一:从源区间 ...
分类:
其他好文 时间:
2020-07-12 22:06:54
阅读次数:
52
给你一个 $1$ 到 $n$ 的排列。
定义```特殊交换```为:选择一段区间$[l,r]$ ,使得此段区间上的数交换后都不在原来的位置。
问最少多少次可以将此排列变成升序的。 ...
分类:
其他好文 时间:
2020-07-12 10:41:17
阅读次数:
43
编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 '.' 表示。 一个数独。 答案被标成红色。 Note: 给定的数独 ...
分类:
其他好文 时间:
2020-07-11 21:21:10
阅读次数:
58
解法一: f[i][j]表示数列A的前i个和数列B的前j个且以B[i]结尾的最长公共上升子序列 f[i][j]=f[i?1][j] (a[i]≠b[j]) f[i][j]=max(f[i?1][j],f[i?1][t]+1) (a[i]=b[j] 且 1 <= t < j) #include <io ...
分类:
其他好文 时间:
2020-07-11 16:50:15
阅读次数:
45
0 1 1 2 3 5 8 11 19 30 49 > 斐波拉契数列 //非递归实现public int fib(int n) { if(n == 0) return 0; if(n == 1) return 1; int a = 0; int b = 1; int ret = 0; while ( ...
分类:
其他好文 时间:
2020-07-10 18:51:01
阅读次数:
48
回顾梯度下降和正规方程:https://www.cnblogs.com/ssyfj/p/12788147.html 一:正规方程解法 (一)加载数据 import numpy as np import matplotlib.pyplot as plt def loadDataSet(filename ...
分类:
其他好文 时间:
2020-07-10 00:42:42
阅读次数:
227
暴力解法很容易: /** * @Author Niuxy * @Date 2020/7/9 9:49 下午 * @Description 暴力解法 */ public final int maxArea0(int[] height) { int max = 0; for (int i = 0; i ...
分类:
编程语言 时间:
2020-07-10 00:14:45
阅读次数:
71
速度不快,内存不小,emmm,但是都是自己写的,还是需要纪念一下的 第一次思路(错的):将数组表示为整数,然后整数+1,再把整数拆开,组合成数组。见程序中注释部分 执行时发现,如果数组个数太多,如[9,8,7,6,5,4,3,2,1,0],转换成整数时就已经溢出了。于是苦思冥想其他解法 第二次思路( ...
分类:
编程语言 时间:
2020-07-09 22:39:03
阅读次数:
79