This commit is contained in:
HuangHai
2025-08-30 18:35:01 +08:00
commit 1f397eca87
6258 changed files with 1487241 additions and 0 deletions

View 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) );
}
};

View 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;
}
};

View 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;
}
};

View 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));
}
};

View 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);
}
};

View 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;
}
};

View 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;
}
};

View 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();
*/

View 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();
}
};

View 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;
}
};

View 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();
*/

View 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;
}
};

View 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();
*/

View 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;
}
};

View 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--;
}
}
};

View 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;
}
};

View 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;
}
};

View 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;
}
};

View 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;
}
};

View 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);
}
};

View 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;
}
};

View 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;
}
};

View 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;
}
};

View 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;
}
};

View 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;
}
};

View 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;
}
}
}
}
}
}
};

View 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;
}
};

View 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;
}
};

View 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;
}
};

View 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;
}
};