'commit'
This commit is contained in:
50
C++专题课程/到LeedCode刷题/leetcode基础篇/100.相同的树.cpp
Normal file
50
C++专题课程/到LeedCode刷题/leetcode基础篇/100.相同的树.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=100 lang=cpp
|
||||
*
|
||||
* [100] 相同的树
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
class Solution {
|
||||
public:
|
||||
bool isSameTree(TreeNode* p, TreeNode* q) {
|
||||
if(p== NULL && q==NULL)
|
||||
return true;
|
||||
if(p==NULL || q==NULL)
|
||||
return false;
|
||||
if(p->val != q->val)
|
||||
return false;
|
||||
return (isSameTree(p->left,q->left) && isSameTree(p->right,q->right) );
|
||||
}
|
||||
};
|
||||
|
||||
78
C++专题课程/到LeedCode刷题/leetcode基础篇/107.二叉树的层次遍历-ii.cpp
Normal file
78
C++专题课程/到LeedCode刷题/leetcode基础篇/107.二叉树的层次遍历-ii.cpp
Normal file
@@ -0,0 +1,78 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=107 lang=cpp
|
||||
*
|
||||
* [107] 二叉树的层次遍历 II
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
#include <vector>
|
||||
#include <queue>
|
||||
#include <stack>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
vector<vector<int>> levelOrderBottom(TreeNode* root) {
|
||||
vector<vector<int>> v;
|
||||
stack<vector<int>> s;
|
||||
queue<TreeNode*> q;
|
||||
q.push(root);//根节点入队
|
||||
if(root == NULL)
|
||||
return v;
|
||||
|
||||
while(!q.empty()){
|
||||
vector<int> vv;
|
||||
queue<TreeNode*> next;//建立第二个队列
|
||||
//用来存放下一层的节点
|
||||
while(!q.empty()){
|
||||
TreeNode* tre = q.front();
|
||||
vv.push_back(tre->val);
|
||||
q.pop();//头元素出队
|
||||
if(tre->left != NULL)
|
||||
next.push(tre->left);
|
||||
if(tre->right != NULL)
|
||||
next.push(tre->right);
|
||||
}
|
||||
s.push(vv);//用一个向量来保存这一层的节点
|
||||
//进入下一层
|
||||
q = next;
|
||||
}
|
||||
|
||||
|
||||
while(!s.empty()){
|
||||
v.push_back(s.top());
|
||||
s.pop();
|
||||
}
|
||||
return v;
|
||||
}
|
||||
};
|
||||
|
||||
55
C++专题课程/到LeedCode刷题/leetcode基础篇/108.将有序数组转换为二叉搜索树.cpp
Normal file
55
C++专题课程/到LeedCode刷题/leetcode基础篇/108.将有序数组转换为二叉搜索树.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=108 lang=cpp
|
||||
* 二叉树的根一定是数组中间元素,因为左边都比它小,右边都比他大
|
||||
* 递归做
|
||||
* [108] 将有序数组转换为二叉搜索树
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
TreeNode* sortedArrayToBST(vector<int>& nums) {
|
||||
if(nums.empty())
|
||||
return NULL;
|
||||
TreeNode* root = new TreeNode(nums[nums.size()/2]);
|
||||
vector<int> vec_l = vector<int>(nums.begin(),nums.begin()+nums.size()/2);
|
||||
vector<int> vec_r = vector<int>(nums.begin()+nums.size()/2+1,nums.end());
|
||||
|
||||
root->left = sortedArrayToBST(vec_l);
|
||||
root->right = sortedArrayToBST(vec_r);
|
||||
return root;
|
||||
}
|
||||
};
|
||||
|
||||
61
C++专题课程/到LeedCode刷题/leetcode基础篇/110.平衡二叉树.cpp
Normal file
61
C++专题课程/到LeedCode刷题/leetcode基础篇/110.平衡二叉树.cpp
Normal file
@@ -0,0 +1,61 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=110 lang=cpp
|
||||
*
|
||||
* [110] 平衡二叉树
|
||||
* 两层递归:
|
||||
* height:求高度
|
||||
* isbalanced:确保它是平衡二叉树
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
#include <algorithm>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int height(TreeNode* root){
|
||||
if(root == NULL)
|
||||
return 0;
|
||||
int left = height(root->left);
|
||||
int right = height(root->right);
|
||||
return max(left+1,right+1);
|
||||
}
|
||||
bool isBalanced(TreeNode* root) {
|
||||
if(root == NULL)
|
||||
return true;
|
||||
if(abs(height(root->left)-height(root->right))>1)
|
||||
return false;
|
||||
|
||||
return (isBalanced(root->left)&& isBalanced(root->right));
|
||||
}
|
||||
};
|
||||
|
||||
52
C++专题课程/到LeedCode刷题/leetcode基础篇/112.路径总和.cpp
Normal file
52
C++专题课程/到LeedCode刷题/leetcode基础篇/112.路径总和.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=112 lang=cpp
|
||||
*
|
||||
* [112] 路径总和
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
class Solution {
|
||||
public:
|
||||
bool hasPathSum(TreeNode* root, int sum) {
|
||||
if(root == NULL)
|
||||
return false;
|
||||
|
||||
if(root->left == NULL && root->right == NULL){
|
||||
return root->val == sum;
|
||||
}
|
||||
|
||||
return hasPathSum(root->left,sum-root->val)
|
||||
|| hasPathSum(root->right,sum-root->val);
|
||||
}
|
||||
};
|
||||
|
||||
45
C++专题课程/到LeedCode刷题/leetcode基础篇/122.买卖股票的最佳时机-ii.cpp
Normal file
45
C++专题课程/到LeedCode刷题/leetcode基础篇/122.买卖股票的最佳时机-ii.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=122 lang=cpp
|
||||
*
|
||||
* [122] 买卖股票的最佳时机 II
|
||||
*/
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int maxProfit(vector<int>& prices) {
|
||||
if(prices.empty())
|
||||
return 0;
|
||||
int sum = 0;
|
||||
for(int i=0;i<prices.size()-1;i++){
|
||||
if(prices[i]<prices[i+1]){
|
||||
sum += prices[i+1] - prices[i];
|
||||
}
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
};
|
||||
|
||||
60
C++专题课程/到LeedCode刷题/leetcode基础篇/125.验证回文串.cpp
Normal file
60
C++专题课程/到LeedCode刷题/leetcode基础篇/125.验证回文串.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=125 lang=cpp
|
||||
*
|
||||
* [125] 验证回文串
|
||||
*/
|
||||
#include <string>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
bool isAlphaNum(char &ch){
|
||||
if(ch>='a' && ch<='z')
|
||||
return true;
|
||||
if(ch>='A' && ch<='Z')
|
||||
return true;
|
||||
if(ch>='0' && ch<='9')
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
bool isPalindrome(string s) {
|
||||
int left = 0;
|
||||
int right = s.size() -1;
|
||||
while(left<right){
|
||||
if(!isAlphaNum(s[left])){
|
||||
++left;
|
||||
}else if(!isAlphaNum(s[right])){
|
||||
--right;
|
||||
}else if((s[left]+32-'a')%32 != (s[right]+32-'a')%32)
|
||||
return false;
|
||||
else{
|
||||
++left;
|
||||
--right;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
70
C++专题课程/到LeedCode刷题/leetcode基础篇/155.最小栈.cpp
Normal file
70
C++专题课程/到LeedCode刷题/leetcode基础篇/155.最小栈.cpp
Normal file
@@ -0,0 +1,70 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=155 lang=cpp
|
||||
*
|
||||
* [155] 最小栈
|
||||
*/
|
||||
#include <stack>
|
||||
using namespace std;
|
||||
class MinStack {
|
||||
public:
|
||||
/** initialize your data structure here. */
|
||||
MinStack() {
|
||||
|
||||
}
|
||||
|
||||
void push(int x) {
|
||||
s1.push(x);
|
||||
if(s2.empty()|| x<=getMin())
|
||||
s2.push(x);
|
||||
}
|
||||
|
||||
void pop() {
|
||||
if(s1.top() == getMin())
|
||||
s2.pop();
|
||||
s1.pop();
|
||||
}
|
||||
|
||||
int top() {
|
||||
return s1.top();
|
||||
}
|
||||
|
||||
int getMin() {
|
||||
return s2.top();
|
||||
}
|
||||
private:
|
||||
stack<int> s1;
|
||||
stack<int> s2;//s2是辅助栈,始终存在s1的最小值
|
||||
};
|
||||
|
||||
/**
|
||||
* Your MinStack object will be instantiated and called as such:
|
||||
* MinStack* obj = new MinStack();
|
||||
* obj->push(x);
|
||||
* obj->pop();
|
||||
* int param_3 = obj->top();
|
||||
* int param_4 = obj->getMin();
|
||||
*/
|
||||
|
||||
63
C++专题课程/到LeedCode刷题/leetcode基础篇/20.有效的括号.cpp
Normal file
63
C++专题课程/到LeedCode刷题/leetcode基础篇/20.有效的括号.cpp
Normal file
@@ -0,0 +1,63 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=20 lang=cpp
|
||||
*'(',')','{','}','[',']'
|
||||
* [20] 有效的括号
|
||||
*/
|
||||
#include <string>
|
||||
#include <stack>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
bool isValid(string s) {
|
||||
stack<char> tempStack;
|
||||
for(char& c: s){
|
||||
switch(c){
|
||||
case '(':
|
||||
case '{':
|
||||
case '[': tempStack.push(c);break;
|
||||
case ')':
|
||||
if(tempStack.empty() || tempStack.top() !='(')
|
||||
return false;
|
||||
else
|
||||
tempStack.pop();break;
|
||||
case '}':
|
||||
if(tempStack.empty() || tempStack.top() !='{')
|
||||
return false;
|
||||
else
|
||||
tempStack.pop();break;
|
||||
case ']':
|
||||
if(tempStack.empty() || tempStack.top() !='[')
|
||||
return false;
|
||||
else
|
||||
tempStack.pop();break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return tempStack.empty();
|
||||
}
|
||||
};
|
||||
|
||||
52
C++专题课程/到LeedCode刷题/leetcode基础篇/206.反转链表.cpp
Normal file
52
C++专题课程/到LeedCode刷题/leetcode基础篇/206.反转链表.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=206 lang=cpp
|
||||
*
|
||||
* [206] 反转链表
|
||||
*/
|
||||
/**
|
||||
* Definition for singly-linked list.
|
||||
* struct ListNode {
|
||||
* int val;
|
||||
* ListNode *next;
|
||||
* ListNode(int x) : val(x), next(NULL) {}
|
||||
* };
|
||||
*/
|
||||
class Solution {
|
||||
public:
|
||||
ListNode* reverseList(ListNode* head) {
|
||||
ListNode* pre= NULL;
|
||||
ListNode* current = head;
|
||||
ListNode* temp;
|
||||
while(current !=NULL){
|
||||
temp = current->next;//temp首先存放当前节点的下一个节点
|
||||
current->next = pre;//当前节点指向上一个节点
|
||||
pre = current;//pre走向它的上一个节点
|
||||
current = temp;//current继续处理下一个节点
|
||||
}
|
||||
return pre;
|
||||
}
|
||||
};
|
||||
|
||||
81
C++专题课程/到LeedCode刷题/leetcode基础篇/225.用队列实现栈.cpp
Normal file
81
C++专题课程/到LeedCode刷题/leetcode基础篇/225.用队列实现栈.cpp
Normal file
@@ -0,0 +1,81 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=225 lang=cpp
|
||||
*
|
||||
* [225] 用队列实现栈
|
||||
*/
|
||||
class MyStack {
|
||||
public:
|
||||
/** Initialize your data structure here. */
|
||||
MyStack() {
|
||||
|
||||
}
|
||||
|
||||
/** Push element x onto stack. */
|
||||
void push(int x) {
|
||||
queue<int> temp;//建立一个辅助队列
|
||||
while(q.empty() == false){
|
||||
//将队列中的所有元素都存入辅助队列中
|
||||
temp.push(q.front());
|
||||
q.pop();
|
||||
}
|
||||
q.push(x);//向队列中压入元素
|
||||
while(temp.empty() == false){
|
||||
//逐个将辅助队列中哦元素送回队列q中
|
||||
q.push(temp.front());
|
||||
temp.pop();
|
||||
}
|
||||
}
|
||||
|
||||
/** Removes the element on top of the stack and returns that element. */
|
||||
int pop() {
|
||||
//将队首元素返回
|
||||
int a = q.front();
|
||||
q.pop();
|
||||
return a;
|
||||
}
|
||||
|
||||
/** Get the top element. */
|
||||
int top() {
|
||||
return q.front();//直接拿队首元素
|
||||
}
|
||||
|
||||
/** Returns whether the stack is empty. */
|
||||
bool empty() {
|
||||
return q.empty();
|
||||
}
|
||||
private:
|
||||
queue<int> q;
|
||||
};
|
||||
|
||||
/**
|
||||
* Your MyStack object will be instantiated and called as such:
|
||||
* MyStack* obj = new MyStack();
|
||||
* obj->push(x);
|
||||
* int param_2 = obj->pop();
|
||||
* int param_3 = obj->top();
|
||||
* bool param_4 = obj->empty();
|
||||
*/
|
||||
|
||||
51
C++专题课程/到LeedCode刷题/leetcode基础篇/226.翻转二叉树.cpp
Normal file
51
C++专题课程/到LeedCode刷题/leetcode基础篇/226.翻转二叉树.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=226 lang=cpp
|
||||
*
|
||||
* [226] 翻转二叉树
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
class Solution {
|
||||
public:
|
||||
TreeNode* invertTree(TreeNode* root) {
|
||||
if(root == NULL)
|
||||
return NULL;
|
||||
TreeNode* tmp = root->left;
|
||||
root->left = root->right;
|
||||
root->right = tmp;
|
||||
invertTree(root->left);
|
||||
invertTree(root->right);
|
||||
return root;
|
||||
}
|
||||
};
|
||||
|
||||
78
C++专题课程/到LeedCode刷题/leetcode基础篇/232.用栈实现队列.cpp
Normal file
78
C++专题课程/到LeedCode刷题/leetcode基础篇/232.用栈实现队列.cpp
Normal file
@@ -0,0 +1,78 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=232 lang=cpp
|
||||
*
|
||||
* [232] 用栈实现队列
|
||||
*/
|
||||
class MyQueue {
|
||||
public:
|
||||
/** Initialize your data structure here. */
|
||||
MyQueue() {
|
||||
|
||||
}
|
||||
|
||||
/** Push element x to the back of queue. */
|
||||
void push(int x) { // 将元素放入栈底
|
||||
stack<int> temp;
|
||||
while(s.empty() == false){
|
||||
temp.push(s.top());
|
||||
s.pop();
|
||||
}
|
||||
s.push(x);
|
||||
while(temp.empty() == false){
|
||||
s.push(temp.top());
|
||||
temp.pop();
|
||||
}
|
||||
}
|
||||
|
||||
/** Removes the element from in front of queue and returns that element. */
|
||||
int pop() {
|
||||
int tmp = s.top();
|
||||
s.pop();
|
||||
return tmp;
|
||||
}
|
||||
|
||||
/** Get the front element. */
|
||||
int peek() {
|
||||
return s.top();
|
||||
}
|
||||
|
||||
/** Returns whether the queue is empty. */
|
||||
bool empty() {
|
||||
return s.empty();
|
||||
}
|
||||
private:
|
||||
stack<int> s,temp;
|
||||
};
|
||||
|
||||
/**
|
||||
* Your MyQueue object will be instantiated and called as such:
|
||||
* MyQueue* obj = new MyQueue();
|
||||
* obj->push(x);
|
||||
* int param_2 = obj->pop();
|
||||
* int param_3 = obj->peek();
|
||||
* bool param_4 = obj->empty();
|
||||
*/
|
||||
|
||||
60
C++专题课程/到LeedCode刷题/leetcode基础篇/28.实现str-str.cpp
Normal file
60
C++专题课程/到LeedCode刷题/leetcode基础篇/28.实现str-str.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=28 lang=cpp
|
||||
*
|
||||
* [28] 实现strStr()
|
||||
*/
|
||||
#include <string>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int strStr(string haystack, string needle) {
|
||||
if(needle.size() == 0)
|
||||
return 0;
|
||||
if(needle.size() >haystack.size())
|
||||
return -1;
|
||||
|
||||
int i,j;
|
||||
i = 0;
|
||||
j = 0;
|
||||
for(i=0;i<haystack.size();i++){
|
||||
if(j == needle.size())
|
||||
return i - needle.size();
|
||||
if(haystack[i] == needle[j])
|
||||
j++;
|
||||
else{
|
||||
i -= j;
|
||||
j = 0;
|
||||
}
|
||||
}
|
||||
|
||||
//用来单个字母的时候,j++,j=1,i=1
|
||||
if(j == needle.size())
|
||||
return i - needle.size();
|
||||
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
|
||||
47
C++专题课程/到LeedCode刷题/leetcode基础篇/344.反转字符串.cpp
Normal file
47
C++专题课程/到LeedCode刷题/leetcode基础篇/344.反转字符串.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=344 lang=cpp
|
||||
*
|
||||
* [344] 反转字符串
|
||||
*/
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
void reverseString(vector<char>& s) {
|
||||
if(s.empty()){
|
||||
return ;
|
||||
}
|
||||
int left = 0;
|
||||
int right = s.size() -1;
|
||||
while(left<right){
|
||||
swap(s[left],s[right]);
|
||||
left++;
|
||||
right--;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
55
C++专题课程/到LeedCode刷题/leetcode基础篇/38.报数.cpp
Normal file
55
C++专题课程/到LeedCode刷题/leetcode基础篇/38.报数.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=38 lang=cpp
|
||||
*
|
||||
* [38] 报数
|
||||
* 1211:1个1,1个2,2个1
|
||||
* 111221:3个1,2个2,1个1
|
||||
* 对于前一个数,找出相同元素的个数
|
||||
*/
|
||||
#include <string>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
string countAndSay(int n) {
|
||||
if(n<=0)
|
||||
return "";
|
||||
string res = "1";
|
||||
while(--n){
|
||||
string cur ="";
|
||||
for(int i =0;i<res.size();i++){
|
||||
int cnt = 1;
|
||||
while(i+1<res.size() && res[i] == res[i+1]){
|
||||
cnt++;
|
||||
i++;
|
||||
}
|
||||
cur += to_string(cnt)+res[i];
|
||||
}
|
||||
res = cur;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
};
|
||||
|
||||
52
C++专题课程/到LeedCode刷题/leetcode基础篇/455.分发饼干.cpp
Normal file
52
C++专题课程/到LeedCode刷题/leetcode基础篇/455.分发饼干.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=455 lang=cpp
|
||||
*
|
||||
* [455] 分发饼干
|
||||
*/
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int findContentChildren(vector<int>& g, vector<int>& s) {
|
||||
int result = 0;
|
||||
sort(g.begin(),g.end());
|
||||
sort(s.begin(),s.end());
|
||||
|
||||
for(int i=0;i<g.size();i++){
|
||||
for(int j=0;j<s.size();j++){
|
||||
if(s[j] >= g[i]){
|
||||
result++;
|
||||
s.erase(s.begin()+j);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
51
C++专题课程/到LeedCode刷题/leetcode基础篇/496.下一个更大元素-i.cpp
Normal file
51
C++专题课程/到LeedCode刷题/leetcode基础篇/496.下一个更大元素-i.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=496 lang=cpp
|
||||
*
|
||||
* [496] 下一个更大元素 I
|
||||
*/
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
|
||||
vector<int> res;
|
||||
for( auto c:nums1){
|
||||
auto iter = find(nums2.begin(),nums2.end(),c);
|
||||
for(iter=iter+1;iter!=nums2.end();iter++){
|
||||
if(*iter>c){
|
||||
res.push_back(*iter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(*(iter-1) <=c && iter == nums2.end()){
|
||||
res.push_back(-1);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
};
|
||||
|
||||
50
C++专题课程/到LeedCode刷题/leetcode基础篇/53.最大子序和.cpp
Normal file
50
C++专题课程/到LeedCode刷题/leetcode基础篇/53.最大子序和.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=53 lang=cpp
|
||||
*
|
||||
* [53] 最大子序和
|
||||
sum[i]:用来计算第i个元素连续和
|
||||
sum[i] max(sum[i-1]+a[i], a[i])
|
||||
*/
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int maxSubArray(vector<int>& nums) {
|
||||
int sum = nums[0];
|
||||
int n = nums[0];
|
||||
for(int i =1;i<nums.size();i++){
|
||||
if(n>0)
|
||||
n+=nums[i];
|
||||
else
|
||||
n = nums[i];
|
||||
if(sum < n)
|
||||
sum = n;
|
||||
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
};
|
||||
|
||||
60
C++专题课程/到LeedCode刷题/leetcode基础篇/572.另一个树的子树.cpp
Normal file
60
C++专题课程/到LeedCode刷题/leetcode基础篇/572.另一个树的子树.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=572 lang=cpp
|
||||
*
|
||||
* [572] 另一个树的子树
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
class Solution {
|
||||
public:
|
||||
bool isSubtree(TreeNode* s, TreeNode* t) {
|
||||
if(t== NULL )
|
||||
return true;
|
||||
if(s== NULL)
|
||||
return false;
|
||||
|
||||
return isSubWithRoot(s,t) || isSubtree(s->left,t)|| isSubtree(s->right,t);
|
||||
}
|
||||
|
||||
bool isSubWithRoot(TreeNode* s, TreeNode* t){
|
||||
if(s==NULL && t== NULL)
|
||||
return true;
|
||||
if(s==NULL|| t== NULL)
|
||||
return false;
|
||||
if(t->val != s->val)
|
||||
return false;
|
||||
else
|
||||
return isSubWithRoot(s->left,t->left) && isSubWithRoot(s->right,t->right);
|
||||
}
|
||||
};
|
||||
|
||||
50
C++专题课程/到LeedCode刷题/leetcode基础篇/58.最后一个单词的长度.cpp
Normal file
50
C++专题课程/到LeedCode刷题/leetcode基础篇/58.最后一个单词的长度.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=58 lang=cpp
|
||||
*
|
||||
* [58] 最后一个单词的长度
|
||||
*/
|
||||
#include <string>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int lengthOfLastWord(string s) {
|
||||
int res = 0;
|
||||
int len = s.size();
|
||||
if(len == 0)
|
||||
return res;
|
||||
int index = len -1;
|
||||
while(s[index]==' ')
|
||||
index--; //trim功能,排除两端的空格
|
||||
for(int i=index;i>=0;i--){
|
||||
if(s[i] !=' ')
|
||||
res++;
|
||||
else
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
};
|
||||
|
||||
54
C++专题课程/到LeedCode刷题/leetcode基础篇/617.合并二叉树.cpp
Normal file
54
C++专题课程/到LeedCode刷题/leetcode基础篇/617.合并二叉树.cpp
Normal file
@@ -0,0 +1,54 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=617 lang=cpp
|
||||
*
|
||||
* [617] 合并二叉树
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
class Solution {
|
||||
public:
|
||||
TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
|
||||
if(t1==NULL && t2==NULL)
|
||||
return NULL;
|
||||
if(t1 == NULL)
|
||||
return t2;
|
||||
if(t2 == NULL)
|
||||
return t1;
|
||||
|
||||
t1->val +=t2->val;
|
||||
t1->left = mergeTrees(t1->left,t2->left);
|
||||
t1->right = mergeTrees(t1->right,t2->right);
|
||||
return t1;
|
||||
}
|
||||
};
|
||||
|
||||
55
C++专题课程/到LeedCode刷题/leetcode基础篇/66.加一.cpp
Normal file
55
C++专题课程/到LeedCode刷题/leetcode基础篇/66.加一.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=66 lang=cpp
|
||||
*
|
||||
* [66] 加一
|
||||
* 如果最后一位不是9,直接加1,返回即可
|
||||
* 如果是9,那么,把当前位置为0,同时
|
||||
* 需要把这个1向前进位
|
||||
* 99999+1,连续进位,用循环
|
||||
* 4329
|
||||
*/
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
vector<int> plusOne(vector<int>& digits) {
|
||||
int n = digits.size();
|
||||
for(int i=n-1;i>=0;i--){
|
||||
if(digits[i] == 9)
|
||||
digits[i] =0;
|
||||
else
|
||||
{
|
||||
digits[i]++;
|
||||
return digits;
|
||||
}
|
||||
|
||||
}
|
||||
digits[0] =1;
|
||||
digits.push_back(0);
|
||||
return digits;
|
||||
}
|
||||
};
|
||||
|
||||
68
C++专题课程/到LeedCode刷题/leetcode基础篇/671.二叉树中第二小的节点.cpp
Normal file
68
C++专题课程/到LeedCode刷题/leetcode基础篇/671.二叉树中第二小的节点.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=671 lang=cpp
|
||||
*
|
||||
* [671] 二叉树中第二小的节点
|
||||
* 最小者first, 最大值是second,先序遍历,依次比较fst,sec,
|
||||
* 如果比fst小,那么就把fst付给sec,把当前值付给fst
|
||||
* 判断一下sec,如果sec的初值没有变,返回-1,否则就返回sec
|
||||
*/
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* struct TreeNode {
|
||||
* int val;
|
||||
* TreeNode *left;
|
||||
* TreeNode *right;
|
||||
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
|
||||
* };
|
||||
*/
|
||||
#include <set>
|
||||
#include <queue>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int findSecondMinimumValue(TreeNode* root) {
|
||||
set<int> res;
|
||||
queue<TreeNode*> nodes;
|
||||
nodes.push(root);
|
||||
while(!nodes.empty()){
|
||||
TreeNode* node = nodes.front();
|
||||
nodes.pop();
|
||||
res.insert(node->val);
|
||||
if(node->left)
|
||||
nodes.push(node->left);
|
||||
if(node->right)
|
||||
nodes.push(node->right);
|
||||
}
|
||||
auto iter = res.begin();
|
||||
if(res.size()>1)
|
||||
return *(++iter);
|
||||
else
|
||||
return -1;
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
67
C++专题课程/到LeedCode刷题/leetcode基础篇/682.棒球比赛.cpp
Normal file
67
C++专题课程/到LeedCode刷题/leetcode基础篇/682.棒球比赛.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=682 lang=cpp
|
||||
*
|
||||
* [682] 棒球比赛
|
||||
*/
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int calPoints(vector<string>& ops) {
|
||||
vector<int> res;
|
||||
int sum =0 ;
|
||||
for(int i=0;i<ops.size();i++){
|
||||
if(ops[i] !="+" && ops[i] !="C" && ops[i]!="D"){
|
||||
res.push_back(str2int(ops[i]));
|
||||
}
|
||||
else if(ops[i]=="C"){
|
||||
res.pop_back();
|
||||
}else if(ops[i] == "D"){
|
||||
res.push_back(res.back()*2);
|
||||
}else if(ops[i] =="+"){
|
||||
res.push_back(res[res.size()-2]+res.back());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
for(int i=0;i<res.size();i++){
|
||||
sum+=res[i];
|
||||
}
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
int str2int(string s){
|
||||
stringstream ss;
|
||||
int n;
|
||||
ss<<s;
|
||||
ss>>n;
|
||||
return n;
|
||||
}
|
||||
};
|
||||
|
||||
76
C++专题课程/到LeedCode刷题/leetcode基础篇/690.员工的重要性.cpp
Normal file
76
C++专题课程/到LeedCode刷题/leetcode基础篇/690.员工的重要性.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=690 lang=cpp
|
||||
*
|
||||
* [690] 员工的重要性
|
||||
*/
|
||||
/*
|
||||
// Employee info
|
||||
class Employee {
|
||||
public:
|
||||
// It's the unique ID of each node.
|
||||
// unique id of this employee
|
||||
int id;
|
||||
// the importance value of this employee
|
||||
int importance;
|
||||
// the id of direct subordinates
|
||||
vector<int> subordinates;
|
||||
};
|
||||
*/
|
||||
#include <vector>
|
||||
#include <queue>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int getImportance(vector<Employee*> employees, int id) {
|
||||
int res = 0;
|
||||
for(auto k :employees){
|
||||
if(k->id == id){
|
||||
BFS(employees,k,res);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
void BFS(vector<Employee*> employees,Employee* k,int& res){
|
||||
queue<Employee*> q;
|
||||
q.push(k);
|
||||
while(!q.empty()){
|
||||
Employee* top = q.front();
|
||||
q.pop();
|
||||
res += top->importance;
|
||||
if(top->subordinates.size()!=0){
|
||||
for(auto k:top->subordinates){
|
||||
for(int i=0;i<employees.size();i++){
|
||||
if(k==employees[i]->id){
|
||||
q.push(employees[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
58
C++专题课程/到LeedCode刷题/leetcode基础篇/697.数组的度.cpp
Normal file
58
C++专题课程/到LeedCode刷题/leetcode基础篇/697.数组的度.cpp
Normal file
@@ -0,0 +1,58 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=697 lang=cpp
|
||||
*
|
||||
* [697] 数组的度
|
||||
*/
|
||||
#include <vector>
|
||||
#include <map>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int findShortestSubArray(vector<int>& nums) {
|
||||
int n = nums.size();
|
||||
map<int,vector<int>> tmp;//vector记录出现的相同数的位置
|
||||
for(int i=0;i<n;i++){
|
||||
tmp[nums[i]].push_back(i);
|
||||
}
|
||||
|
||||
int count = 0; //表征数组的度
|
||||
int res = INT_MAX;
|
||||
for(auto iter=tmp.begin();iter!=tmp.end();iter++){
|
||||
int m = iter->second.size();//算一下数组的度
|
||||
if(m>count){
|
||||
count = m;
|
||||
res = iter->second[m-1]-iter->second[0]+1;
|
||||
}
|
||||
if(m==count){
|
||||
res=min(res,iter->second[m-1]-iter->second[0]+1);
|
||||
}
|
||||
|
||||
}
|
||||
return res;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
68
C++专题课程/到LeedCode刷题/leetcode基础篇/70.爬楼梯.cpp
Normal file
68
C++专题课程/到LeedCode刷题/leetcode基础篇/70.爬楼梯.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=70 lang=cpp
|
||||
*
|
||||
* [70] 爬楼梯
|
||||
* 1个台阶:1
|
||||
* 2个台阶:2
|
||||
* 3个台阶:3
|
||||
* 4个台阶:5
|
||||
* 1+1+1+1,1+1+2,1+2+1,2+2,2+1+1
|
||||
*/
|
||||
class Solution {
|
||||
public:
|
||||
int fab(int n){
|
||||
if(n==1 || n ==0){
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return fab(n-2)+fab(n-1);
|
||||
}
|
||||
|
||||
}
|
||||
int climbStairs(int n) {
|
||||
//return fab(n);
|
||||
int sum;
|
||||
int num;//num是用来产生fab
|
||||
if(n==1 || n ==0){
|
||||
return 1;
|
||||
}
|
||||
if(n==2)
|
||||
return 2;
|
||||
|
||||
sum = 2;
|
||||
long long num_1 = 1;
|
||||
long long num_2 = 2;
|
||||
long long temp = 0;
|
||||
for(int i=2;i<n;i++){
|
||||
temp = num_2;
|
||||
num_2 = num_1+num_2;
|
||||
num_1 = temp;
|
||||
}
|
||||
return num_2;
|
||||
}
|
||||
};
|
||||
|
||||
59
C++专题课程/到LeedCode刷题/leetcode基础篇/733.图像渲染.cpp
Normal file
59
C++专题课程/到LeedCode刷题/leetcode基础篇/733.图像渲染.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=733 lang=cpp
|
||||
*
|
||||
* [733] 图像渲染
|
||||
*/
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
void dfs(vector<vector<int>>& image,int i,int j,int oldColor,int newColor){
|
||||
|
||||
}
|
||||
vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {
|
||||
if(image[sr][sc] == newColor)
|
||||
return image;
|
||||
|
||||
int temp = image[sr][sc];
|
||||
image[sr][sc] = newColor;
|
||||
int row = image.size();
|
||||
int col = image[0].size();
|
||||
if(sr-1>=0 && image[sr-1][sc] == temp){
|
||||
floodFill(image,sr-1,sc,newColor);
|
||||
}
|
||||
if(sr+1 <row && image[sr+1][sc] == temp)
|
||||
floodFill(image,sr+1,sc,newColor);
|
||||
|
||||
if(sc-1>=0 && image[sr][sc-1] == temp)
|
||||
floodFill(image,sr,sc-1,newColor);
|
||||
|
||||
if(sc+1<col && image[sr][sc+1] == temp)
|
||||
floodFill(image,sr,sc+1,newColor);
|
||||
|
||||
return image;
|
||||
}
|
||||
};
|
||||
|
||||
55
C++专题课程/到LeedCode刷题/leetcode基础篇/83.删除排序链表中的重复元素.cpp
Normal file
55
C++专题课程/到LeedCode刷题/leetcode基础篇/83.删除排序链表中的重复元素.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
/*/*******************************************************************************
|
||||
** **
|
||||
** Jiedi(China nanjing)Ltd. **
|
||||
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
|
||||
*******************************************************************************/
|
||||
|
||||
/*****************************FILE INFOMATION***********************************
|
||||
**
|
||||
** Project : 算法设计与编程实践---基于leetcode的企业真题库
|
||||
** Contact : xiacaojun@qq.com
|
||||
** 博客 : http://blog.csdn.net/jiedichina
|
||||
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
|
||||
腾讯课堂 https://jiedi.ke.qq.com/
|
||||
csdn学院 https://edu.csdn.net/course/detail/25037
|
||||
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
|
||||
** 老夏课堂 http://www.laoxiaketang.com
|
||||
**
|
||||
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 :296249312 加入群下载代码和交流
|
||||
** 微信公众号 : jiedi2007
|
||||
** 头条号 : 夏曹俊
|
||||
**
|
||||
*****************************************************************************
|
||||
//!!!!!!!!! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群:296249312 下载代码和交流*/
|
||||
/*
|
||||
* @lc app=leetcode.cn id=83 lang=cpp
|
||||
* 不断的去判断当前节点的下一个
|
||||
* 元素的val是否与当前的val相同
|
||||
* 相同的话,指向下一个节点的下一个节点
|
||||
* [83] 删除排序链表中的重复元素
|
||||
*/
|
||||
/**
|
||||
* Definition for singly-linked list.
|
||||
* struct ListNode {
|
||||
* int val;
|
||||
* ListNode *next;
|
||||
* ListNode(int x) : val(x), next(NULL) {}
|
||||
* };
|
||||
*/
|
||||
class Solution {
|
||||
public:
|
||||
ListNode* deleteDuplicates(ListNode* head) {
|
||||
ListNode* cur = head;
|
||||
while(cur !=NULL){
|
||||
ListNode* rear = cur->next;
|
||||
if(rear == NULL)
|
||||
return head;
|
||||
if(cur->val == rear->val)
|
||||
cur->next = rear->next;
|
||||
else
|
||||
cur = cur->next;
|
||||
}
|
||||
return head;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user