注释 单行注释 当行注释用两个斜线 (//) 多行注释 多行注释用一对斜杠和星号表示(/**/) 变量 创建变量的语法: 数据类型 变量名 = 变量初始值; 例如: int age = 18; 常量 用于记录程序中不能改变的数据,常量的定义方式有两种: #define宏常量 语法: #define ...
分类:
编程语言 时间:
2020-07-05 23:08:59
阅读次数:
75
算法时间复杂度:妥妥的nlogn 步骤: 1.确定分界点 mid = (l+r) >> 1 2.递归排序左右两边 3.归并——合二为一(用两个指针,分别指向两个序列) 就是递归到最底部,然后对小部分排序,归并为大部分。 代码模板: 1 void merge_sort(int q[], int l, ...
分类:
编程语言 时间:
2020-07-05 17:15:49
阅读次数:
80
解法一(使用O(mn)空间) 可以开一个额外的二维数组,记录每个位置的元素是否已被访问过。 然后我们遍历原来的二维数组,只要没被访问过且元素为0,那么就将该元素所在的行和列的元素值置为0, 并且将这一行的所有元素都设置为已经访问过,以免之后的遍历碰到被置为0的元素也将那一行那一列的元素置为0. 这里 ...
分类:
其他好文 时间:
2020-07-04 23:00:26
阅读次数:
64
非递归 思路1 用两个栈实现后序遍历的步骤: 申请一个栈stack1,将头节点压入栈中 将stack1中元素弹出,记为temp,依次将temp的左孩子,右孩子压入stack1(如果有的话 每个从stack1中弹出的元素都压入stack2 4.不断重复步骤2,3直到stack1为空停止 5.从stac ...
分类:
其他好文 时间:
2020-07-04 22:33:18
阅读次数:
64
双指针算法 模板 for (int i=0;i<n;i++) { while(j<i && check(i,j)) j++; /* 这里面 的 j 相比于两重循环,不用 回调 所以时间复杂度低 */ //具体问题的逻辑 } /* 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) ...
分类:
其他好文 时间:
2020-07-03 19:09:58
阅读次数:
50
用传统流程图表示求解以下问题的算法。 有两个瓶子A和B,分别盛放醋和酱油,要求将他们互换(即A瓶原来盛醋,现在盛酱油,B瓶则相反)。 解析: 用两个瓶子显然很难实现,可以借助一个空瓶子C作为中转,先将A中醋导入C中,然后将B中的酱油导入A中,最后将C中的醋导入B中即可实现交换。 依次将10个数输入, ...
分类:
编程语言 时间:
2020-07-03 15:16:02
阅读次数:
181
1 各种锁的释义 1.1 死锁 死锁是指两个线程同时占用两个资源,又在彼此等待对方释放锁资源 import java.util.concurrent.TimeUnit; public class LockExample { public static void main(String[] args) ...
分类:
编程语言 时间:
2020-07-03 01:15:13
阅读次数:
83
1. ts文件与html交互 // 在ts文件中声明变量 public title = 'Hello'; // 在html中使用变量(使用两个花括号) <h1>{{ title }}</h1> // 绑定html ts: public h = '<h1>Hello</h1>' html: <div ...
分类:
其他好文 时间:
2020-07-02 16:52:58
阅读次数:
54
剑指 Offer 09. 用两个栈实现队列 思路 把数据在两个栈中分别“折腾”一次,出来的顺序就是队列的顺序。 向stack1中push数据——向队列中添加数据 从stack2中弹出数据——从队列中删除头部数据 代码 import java.util.Stack; class CQueue { St ...
分类:
其他好文 时间:
2020-07-01 23:43:18
阅读次数:
54
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例: 输入: ["CQueue","appendTail","delete ...
分类:
其他好文 时间:
2020-07-01 22:17:02
阅读次数:
57