09 2019 档案
摘要:将n个从小到大的(上到下)盘子从A移动到C,借助B。其中大的盘子不能放在小的盘子上面输出模拟过程。 将n个盘子从A移动到C => 将n-1个盘子从A移动到B , 再将最底部的一个盘子从A移动到C,最后将B上的n-1个盘子从B移动到C
阅读全文
摘要:开两个栈,一个记录数字,一个记录操作符。然后从前往后扫描整个表达式: 1. 如果遇到 (、+、-,直接入栈;2. 如果遇到数字,则判断操作符栈的栈顶元素,如果不是 (,则弹出操作符的栈顶元素,并用相应操作更新数字栈的栈顶元素。从而保证操作符栈的栈顶最多有一个连续的+或-;3. 如果遇到 ),此时操作
阅读全文
摘要:头文件都是#include<cstring> ①atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char*类型的,而stoi()的参数是const string*,不需要转化为 const char*;
阅读全文
摘要:反向思维:如果知道最小值,那如何求出这个最小值所在的子数组, 即找到这个最小值左边比它更小的元素的位置left 和 右边比它更小的元素的位置right,res += A[i] * ( i - left ) * ( right - i )。 解法一:记忆化递归: 解法二:动态规划 解法三:二分法 l
阅读全文
摘要:找出没有被X围绕的点,则剩下的就是被围绕的点,将这些O改为X。 题意: INF:空房间;-1:墙;0:门 问:从任何一个空房间到最近的门长度是多少。 不能达到的地方填INF 思路: 将所有rooms[i][j] = 0 的结点入队列,然后求BFS,判断这些门到最近的空房间的最短路径。 BFS可以用来
阅读全文
摘要:/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left
阅读全文
摘要:A 和 B 互为 anagram 的充分必要条件是 : A中每个字符出现的次数 = B中每个字符出现的次数 要求O(n)的时间复杂度。 解法:栈 首先在栈中加入空串,这样可以将b和c情况合为一种情况,如:()) 这样会判断为 ‘ ’ 和 ) 不匹配,返回false
阅读全文
摘要:找特殊情况,分类讨论:三种情况 1)两个字符串的长度之差 大于1 直接返回false; 2)长度之差等于1, 判断长的字符串删掉不一样的字符,剩余的字符串是否相同; 3)长度之差等于0,判断不相同的字符个数,若超过一个返回false。 题意:API :int read4(char *buf) 每次读
阅读全文
摘要:模拟:从左到右扫一遍,看对应位置是不是mirror word.
阅读全文

浙公网安备 33010602011771号