- 博客(26)
- 收藏
- 关注
转载 快排的递归和非递归版
#include<iostream>#include<vector>#include<stack>#include<cstdlib>#include<algorithm>using namespace std; /**把数组分为两部分,轴pivot左边的部分都小于轴右边的部分**/template <typename Compara...
2018-04-28 12:25:01
404
原创 剑指offer 旋转数组的最小数字
题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 旋转之后的数组实际上可以划分成两个有序的子数组:前面子数组的大小都大于后面子数组中的
2017-08-12 21:33:33
257
原创 leetcode
题目描述 Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tree could be any binary tree? Would your previous solution still work? Note: You may on
2017-07-06 16:53:37
239
原创 LeetCode maximum path num
题目描述 Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree. For example: Given the below binary tree, 1 / \ 2 3
2017-07-06 16:51:44
228
原创 LeetCode word latter
题目描述 Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start toend, such that: Only one letter can be changed at a timeEach inte
2017-07-06 16:50:12
344
原创 leetcode 字符串枚举
Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s. For example, given s ="aab", Return [ ["aa","b
2017-07-06 16:48:38
269
原创 剑指offer值路径和查找
好久不用Java来写了,花了好久才accept 题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 public class TreeNode { int val = 0; TreeNode left = null; TreeNode right =
2017-07-05 00:07:46
194
原创 二叉搜索树的性质
期末爆炸,昨晚作业来写一道题~~~ 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 public class Solution { public boolean VerifySquenceOfBST(int [] sequence) {
2017-07-04 23:24:47
580
原创 PAT题目 有几个PAT(25)
题目链接 有点动态规划的味道。 #include int main() { char s[100]; int p=0, pa=0, pat=0; scanf("%s", s); int len = strlen(s); for (int i = 0; i { switch (s[i]) { case 'p': p += 1; break; case 'a':
2017-06-24 23:27:40
379
原创 Word_ladder
题目链接 参考了大神的代码 #include #include class Solution { public: void gen_path(unordered_map>& father, vector& path, string start, string word,vector>& ret) { path.push_back(word); if (start == w
2017-06-20 22:42:34
211
原创 pat 中求解最长回文串的长度
本以为暴力枚举会超时,但竟然过了。。。 #include #include #include int longestPalindrome(string s) { int left = 0, right = s.length() - 1; //为奇数时 int len1 = 0; int len2 = 0; int start1 = left;//标记起始点 int sta
2017-06-20 22:26:38
263
原创 scramble string (使用动态规划和递归做)
点击打开链接 class Solution { public: bool solve(string s1, string s2, int left1, int right1, int left2)//串的位置 { int dist = right1 - left1; if (dist == 1) { return s1[left1] == s2[left2]; } int la
2017-06-20 22:01:10
451
原创 LeetCode decode ways
点击打开链接 class Solution { public: bool isdigit(char c) { return c >= '0'&&c } int numDecodings(string s) { int dp[1000] = { 1 };//dp[i]表示前i个字符的方 if (s.length() == 0 || s[0] == '0')
2017-06-20 21:58:22
216
原创 LeetCode 重建BST
点击打开链接 struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: vector
2017-06-20 21:54:48
360
原创 LeetCode动态规划
题目链接 Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example, Given: s1 ="aabcc", s2 ="dbbca", When s3 ="aadbbcbcac", return true. When s3 ="aadbbbac
2017-06-20 21:52:31
230
原创 LeetCode二叉树的层序遍历的输出
题目链接 struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; class Solution { public: vector
2017-06-20 21:49:51
777
原创 LeetCode二叉树的恢复和重建(前序和中序)
点击打开链接 struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; class Solution { public: TreeN
2017-06-20 21:47:01
338
原创 leetcode 八皇后问题
题目链接 class Solution { public: int a[100]; bool issuit(int a[], int n, int row, int col)//判断是否适合放置 { for (int i = 0; i { if (abs(a[i] - col) == abs(row - i) || col == a[i]) return false; }
2017-06-20 21:43:53
703
原创 count the pat
counting the pat int main() { int p=0, pa=0, pat = 0; char s[100000] = { 0 }; scanf("%s", s); int i = 0; while (s[i]!=0) { switch (s[i]) { case 'P': p++; break; case 'A': pa += p; pa
2017-06-20 21:37:25
204
原创 pat 精度问题
点击打开链接 老TLE,可以看出浮点运算的复杂程度远大于整数运算。怎么优化。。。 int main() { float f1, f2; int dignum; scanf("%d", &dignum); scanf("%f %f", &f1, &f2); float t1 = f1, t2 = f2; int count1 = 0, count2 = 0; while (t
2017-06-20 13:06:09
308
原创 pat水题
题目链接 int main() { char a[100], b[100]; int a1, b1, c1, a2, b2, c2,a3,b3,c3; scanf("%d.%d.%d", &a1, &b1, &c1); scanf("%d.%d.%d", &a2, &b2, &c2); int ca1, ca2;//表示进位 c3 = (c1 + c2) % 29; ca1 =
2017-06-19 22:39:31
186
原创 pat stack模拟,老超时wa......
#include #include #include #include #include using namespace std; class st { private: vector vec; public: st(){}; ~st(){}; void pop() { if (vec.size() == 0) { printf("%s\n", "Inv
2017-06-18 22:47:30
254
原创 pat水题
自以为对二进制有很深的理解,面对这种水题,切了好久。。。 题目链接 #include #include typedef long long ll; bool compare(ll a, ll b, ll c)//防止大数相加溢出 { if (a > 0 && b > 0) { if (a > LLONG_MAX - b) return true; } if
2017-06-18 12:41:50
342
原创 LeetCode算法搜索
Given a 2D board containing'X'and'O', capture all regions surrounded by'X'. A region is captured by flipping all'O's into'X's in that surrounded region . For example, X X X X X O O X X X O X X
2017-06-18 00:13:03
213
原创 回文子串
Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s. For example, given s ="aab", Return [ ["aa","b
2017-06-18 00:08:00
235
原创 链表复制
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. struct RandomListNode { i
2017-06-17 23:50:54
349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅