- 博客(82)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 557.反转字符串中的单词III
class Solution { public: string reverseWords(string s) { int index,right,mid,t,i; bool flag = false; index=0; right=0; for ( i = 0; i < s.size(); ) { ...
2020-01-31 17:55:02 57
原创 543.二叉树的直径
思路:不一定最长路径一定要穿过根节点,所以每个节点都要遍历,把每个节点作为根节点,然后,算出根节点左子树的最大深度和右子树的最大深度,把把左右子树的最大深度加起来,作为暂时当前根节点的最大路径长度。把所有节点作为根节点,比较所有根节点的最大路径长度,选最大的。class Solution {public: int md, td; int diameterOfBinaryTree(Tr...
2020-01-31 17:00:01 170
原创 482.密匙格式化
class Solution{public: string licenseKeyFormatting(string S, int K) { string s; s = ""; int cnt = 0; for (int i = S.size()-1; i >= 0; i--) { if (S[i] == '-') continue; el...
2020-01-26 19:54:42 132
原创 463.岛屿的周长
这种方法不好,暴力破解。 超出内存容量,但我写了这么久,还是发出来表示一下我的辛苦。int b[4][2] = { {-1,0}, {0,1}, {0,-1}, {1,0}};class Solution {public: int cnt,m,n; vector<vector<bool>> visit; int islandPerime...
2020-01-23 17:54:33 86
原创 461.汉明距离
思路:刚开始看不懂题目,后来看懂了,1与0不同,记录,相同不记录。最后相同位置不同元素的的数量之和。class Solution {public: int hammingDistance(int x, int y) { int a, b,cnt=0; while (x || y) { a = x % 2; b = y % 2; if (a != b) ...
2020-01-23 11:43:11 65
原创 459.重复的子字符串
解释: 可由子字符串 “abc” 重复四次构成。 (或者子字符串 “abcabc” 重复两次构成。)分析:判断一个字符串是否可以有多个子字符串构成,则该子字符串的长度不能大于该字符串长度的一半,所以可以从0到n/2进行遍历,如果i能被n整除,则进行验证。class Solution {public: bool repeatedSubstringPattern(string ...
2020-01-23 11:11:57 76
原创 453.最小移动次数使数组元素相等
分析:逆向思考,每次移动让剩余的n-1个数加1,相当于每次移动让选定的那个数减1,所以最少移动次数其实就是所有元素减去最小元素的和class Solution {public: int minMoves(vector<int>& nums) { long int sum; int min1; sum = 0; min1 = INT_M...
2020-01-23 09:05:07 136
原创 443.压缩字符串
struct node{ int num; char c;};class Solution {public: int compress(vector<char>& chars) { vector<node>m; int cnt2 = 0; if (chars.size() == 1) return 1; if (chars...
2020-01-22 21:52:05 142
原创 437.路径总和III
借鉴别人的。class Solution {public: int cnt = 0; int pathSum(TreeNode* root, int sum) { if (!root) return 0; dfs(root, sum); pathSum(root->left, sum); pathSum(root->right, sum)...
2020-01-22 18:25:27 105
原创 434.字符串中的单词数
class Solution {public: int countSegments(string s) { int cnt = 0, i; for (i = 0; i < s.size(); i++) { while (s[i] == ' ') i++; while (i < s.size() && s[i] != ' ')...
2020-01-21 23:34:09 123
原创 414.第三大的数
class Solution {public: int thirdMax(vector<int>& nums) { int num1, num2, num3; num1 = INT_MIN; num2 = INT_MIN; num3 = INT_MIN; for (int i = 0; i < nums.size(); i++) nu...
2020-01-21 22:25:56 87
原创 412.Fizz Buzz
class Solution {public: vector<string> fizzBuzz(int n) { vector<string>res; string s; s=""; int sum; for (int i = 1; i <= n; i++) { if (i% 3 == 0) ...
2020-01-21 15:43:56 203
原创 409.最长回文串
一开始觉得这个题目很难,但是仔细看一下,其实是拿字符串里面的字符来构造回文串。怎样才能构造回文串呢?对称的才是回文串,所以只要有偶数个同样的字符就行了。比如AAAABBCBBAAAA1、只要有偶数个相同的字符,那么他们就能对称分两边,肯定可以啊2、中间加一个单个的字符就行,因为中间加上一个也是回文。3、如果是奇数的话,选其中偶数个就行了。...
2020-01-21 15:19:38 142
原创 257.二叉树的所有路径
class Solution {public: vector<string> binaryTreePaths(TreeNode* root) { vector<string> res; string s = ""; if (!root) return res; else dfs(root, s, res); return res;...
2020-01-20 21:46:03 118
原创 405.数字转化为十六进制数
【笔记】核心思想,使用位运算,每4位,对应1位16进制数字。使用0xf(00...01111b)获取num的低4位。 >>算数位移,其中正数右移左边补0,负数右移左边补1。 位移运算并不能保证num==0,需要使用32位int保证(对应16进制小于等于8位)。class Solution {public: string toHex(int num) { sta...
2020-01-20 20:46:20 218
原创 404.左叶子之和
class Solution {public: int sumOfLeftLeaves(TreeNode* root) { if (!root) return 0; else if (pd(root->left))//当前节点的左孩子是左叶子,则返回左结点值+右子节点的递归结果 return root->left->val + sumOfLeftL...
2020-01-20 19:05:25 149
原创 392.判断子序列
class Solution {public: bool isSubsequence(string s, string t) { int index,j; index = 0; for (int i = 0; i < s.size(); i++) { for ( j = index; j < t.size(); j++) { if (s[...
2020-01-20 16:26:27 119
原创 389.找不同
思路:哈希class Solution {public: char findTheDifference(string s, string t) { map<char, int>m1, m2; for (int i = 0; i < s.size(); i++) if (m1.find(s[i]) == m2.end()) m1[s[i]] =...
2020-01-20 16:03:07 53
原创 387.字符串的第一个唯一字符
class Solution {public: int firstUniqChar(string s) { if (s.size() == 0) return -1; map<char, int>map1,map2; for (int i = 0; i < s.size(); i++) if (map1.find(s[i])...
2020-01-20 12:07:34 42
原创 350.两个数组的交集II
class Solution {public: vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { vector<int> nums3; map<int,int >map1; for (int i = 0; i < n...
2020-01-20 11:11:18 116
原创 349.两个数组的交集
class Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { set<int>s1,s2; vector<int> nums3; for (int i = 0; i < nu...
2020-01-20 10:45:25 51
原创 345.反转字符串中的元音字母
class Solution {public: string reverseVowels(string s) { int left, right; left = 0; right = s.size() - 1; while (left <= right) { while (left<=right&&!isTrue(s[left]))...
2020-01-20 10:23:53 134
原创 303.区域和检索
思路:画图分析class NumArray {public: vector<int> arr; NumArray(vector<int>& nums) { int sum = 0; for (int i = 0; i < nums.size(); i++) { sum += nums[i]; arr.push_back...
2020-01-18 22:20:05 50
原创 299.猜数字游戏
class Solution {public: string getHint(string secret, string guess) { map<char, int>s; int cnt1, cnt2; cnt1 = cnt2 = 0; for (int i = 0; i < secret.size(); i++) { if (secret...
2020-01-18 21:29:14 93
原创 283.移动零
思路:双指针,一个快指针,一个慢指针,快指针遍历,遇到零的元素继续走,遇到非零元素就与慢指针交换。忙指针记录的是非零元素的下一个位置。class Solution {public: void moveZeroes(vector<int>& nums) { int index = 0,tmp; for (int i = 0; i < nums.size(...
2020-01-18 20:34:52 55
原创 292.Nim游戏
思路:由于自己先走,但凡石头的块数是4,或者4的倍数,自己都会失败。class Solution {public: bool canWinNim(int n) { if (n % 4 == 0) return false; else return true; }};...
2020-01-18 17:00:45 60
原创 290.单词规律
class Solution {public: bool wordPattern(string pattern, string str) { map<char, string>map; set<string>set; string s=""; int first, end,cnt; first = end = 0; cnt =...
2020-01-17 21:44:23 117
原创 stl::map的遍历
std::map<char, string>::iterator it; for (it = map.begin(); it != map.end(); it++) cout << it->first << ":" << it->second << endl;
2020-01-17 21:12:43 325
原创 278.第一个错误的版本
方法一:暴力破解,时间超出bool isBadVersion(int version);class Solution {public: int firstBadVersion(int n) { for (int i = 1; i < n; i++) { if (!isBadVersion(i) && !isBadVersion(i + 1)...
2020-01-17 20:18:33 101
原创 268.缺失数字
class Solution {public: int missingNumber(vector<int>& nums) { int n = nums.size(); int sum = n * (n + 1) / 2,cnt=0; for (int i = 0; i < nums.size(); i++) cnt += nums[i]; ...
2020-01-17 16:34:21 68
原创 263.丑数
class Solution {public: bool isUgly(int num) { if (num == 1) return true; int flag=num; while (num!=1) { if (num % 2 == 0) num /= 2; if (num % 3 == 0) num /= 3; if (n...
2020-01-17 15:52:46 53
原创 258.各位相加
class Solution {public: int addDigits(int num) { stack<int>s; int sum; while (1) { while (num) { s.push(num % 10); num /= 10; } sum = 0; while (s.size()) {...
2020-01-17 15:31:21 130
转载 八数码问题
https://blog.csdn.net/lishang6257/article/details/79732420https://www.cnblogs.com/guanghe/p/5485816.html(符合教材)
2020-01-16 16:33:15 69
原创 242.有效的字母异位词
字母异位词:两个字符串长度相等,各个字母的个数相等,只是顺序不同方法一:利用map键值对直接匹配,但是这种很暴力class Solution {public: bool isAnagram(string s, string t) { if (s.length() != t.length()) return false; map<char, int>sm...
2020-01-15 22:02:22 108
原创 237.删除链表中的节点
class Solution {public: void deleteNode(ListNode* node) { node->val=node->next->val; node->next=node->next->next; }};
2020-01-15 16:15:14 47
原创 226.反转二叉树
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution {public: TreeNode* invertTree(TreeN...
2020-01-15 16:05:38 51
原创 234.回文链表
思路:判断链表的长度(n),判奇偶性,把前面一半的元素的值放在栈中,对比。 struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };class Solution {private: int length(ListNode *he...
2020-01-15 15:46:54 60
python的学习PPT
2020-09-02
福州大学863数据结构ppt.zip
2020-01-10
如何用孪生网络进行图像分类(不是二分类,多标签分类)
2020-09-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人