摘要:
在Visio 2013中,您可以使用控制点(黄点)更改类宽度,只需拖动它: 阅读全文
摘要:
思路 方法一:递归 以下代码改成c++中string的写法,提交到C++中会超时,可能string比指针更慢吧。 以下C语言代码参考《剑指offer(第2版)》书中的代码,可以在leetcode中提交通过。 这种递归方法效率比较低下。 1 bool matchCore(const char* str 阅读全文
摘要:
思路 转载自: 面试题68 - II. 二叉树的最近公共祖先(后序遍历 DFS ,清晰图解) 方法:后序遍历 (自底向上) 阅读全文
摘要:
思路 方法一:迭代 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) 阅读全文
摘要:
思路 方法:模拟 本题难点在于怎么判断数字是否超过int的范围,这里有两个方法解决: (1) 使用long long直接判断 1 class Solution { 2 public: 3 int strToInt(string str) { 4 if(str.empty()) 5 return 0; 阅读全文
摘要:
思路 方法:对称遍历 1 class Solution { 2 public: 3 vector<int> constructArr(vector<int>& a) { 4 if(a.empty()) 5 return vector<int>(); 6 7 vector<int> b(a.size( 阅读全文
摘要:
思路 方法:使用位运算实现二进制加法 Java实现 1 class Solution { 2 public int add(int a, int b) { 3 int sum, carry; 4 while(b != 0) //运算到没进位为止 5 { 6 sum = a ^ b; // 用异或运算 阅读全文
摘要:
思路 方法:使用逻辑&&运算符的短路特性终止递归 1 class Solution { 2 public: 3 int sumNums(int n) { 4 n > 1 && (n += sumNums(n - 1)); 5 return n; 6 } 7 }; 阅读全文
摘要:
思路 方法一:暴力法 1 class Solution { 2 public: 3 int maxProfit(vector<int>& prices) { 4 int n = (int)prices.size(), ans = 0; 5 for (int i = 0; i < n; ++i){ 6 阅读全文
摘要:
思路 这是经典的约瑟夫环问题。 方法一:用链表模拟 用链表模拟整个游戏过程。如果单纯用链表模拟的话,每次需要从1数到m,才能踢除1个数,所以踢除n-1个数一共需要遍历(n-1)*m次,时间复杂度就是O(n*m),这种方法会超时。 方法二:数学递推公式 1 class Solution { 2 pub 阅读全文