- 博客(29)
- 收藏
- 关注
原创 数据结构与算法作业——课程表Ⅱ
题目:解题代码:class Solution {public: vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) { vector<int> inDegree(numCourses,0); vector<vector<int>> lst(numCour
2020-05-21 12:07:20
237
原创 数据结构预算法作业——课程表
题目:解题方法:拓扑排序截图代码class Solution {public: bool canFinish(int numCourses, vector<vector<int>>& prerequisites) { map<int,set<int>>mp; vector<int>indegree(numCourses+1,0);
2020-05-21 11:28:23
96
原创 数据结构与算法作业——二叉树的最近公共祖先
题目:解题代码:class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* m, TreeNode* n) { if(root==NULL) return NULL; if(root==...
2020-05-03 12:12:53
127
原创 数据结构与算法作业———二叉树的最大深度
题目:解题思路:递归C#解法public class Solution { public int MaxDepth(TreeNode root) { if(root==null) {return 0;} else { ...
2020-05-03 11:59:21
116
原创 数据结构与算法作业——对称二叉树
题目:给定一个二叉树,看他是否是镜像对称的。解题代码:public class Solution { public bool IsSymmetric(TreeNode root) { return IsMirror(root,root); } private bool IsMirror(TreeNode ...
2020-04-26 23:03:55
72
原创 数据结构与算法作业——相同的树
题目:解题代码:public class Solution { public bool IsSameTree(TreeNode p, TreeNode q) { if(p==null&&q==null) { return true; } ...
2020-04-26 22:48:37
196
原创 数据结构与算法作业——格雷编码
题目:解题代码:class Solution {public: vector<int> grayCode(int n) { vector<int> res(1); res[0]=0; for(int i=1;i<=n;i++) { ...
2020-04-20 09:59:14
126
原创 数据结构预算法作业——子集
题目:解题算法:class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { int l=nums.size(); int n=1<<l; vector<...
2020-04-20 09:50:38
88
原创 数据结构与算法作业——只出现一次的数字
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。解题方法1:暴力法解题代码:class Solution {public: int singleNumber(vector<int>& nums) { int i,j,res; int len=nums....
2020-04-08 22:18:20
72
原创 数据结构与算法作业——无重复字符的最长子串
题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。解题方法:滑动窗口解题思路:设置前后两个指向性符号start和end并令其初始值为0,设length为无重复字符串的长度并设初始值为零,设result为无重复字符串的最大长度并设初始值为零。利用for循环取得无重复字符串的长度,一旦出现重复则跳出循环并重新记录新的无重复字符串长度,并利用max取得最大值赋给result。解...
2020-04-07 20:38:27
109
原创 数据结构与算法作业——反转字符串
题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。解题思路:暴力法借助一个temp进行字符交换很容易,这里用swap而不用temp相对简洁一些。解题代码:class Solution {public: void reverseString...
2020-04-01 17:09:15
144
原创 数据结构与算法作业——最长公共前缀
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。解题思路:建立字符串组strs,利用for循环在字符串组的单个字符串中比较字母是否一样,一样则复制到新的字符串中。解题算法:public class Solution { public string LongestCommonPrefix(string[] strs) { ...
2020-03-31 16:02:20
99
原创 数据结构与算法作业——滑动窗口
题目:给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值解题思路:先定义一个函数找到数组中的最大值,再利用循环移动窗口并找到窗口中的最大值。解题代码:class Solution {public: int NumsMax(int l,int r,vector...
2020-03-30 17:06:10
153
原创 数据结构与算法作业——整数反转
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。解题代码:class Solution {public: int reverse(int x) { if(x/10==0) return x; int a=0; while(x) { ...
2020-03-29 00:07:44
76
原创 数据结构与算法作业——最小栈
题目:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。解题算法:public class MinStack { private Stack<int> _stack; publ...
2020-03-22 18:43:50
188
原创 数据结构与算法——逆波兰表达式求值
题目:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:1.整数除法只保留整数部分。2.给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。解题算法:public class Solution { public int EvalRPN(string[] toke...
2020-03-22 18:20:27
292
原创 数据结构与算法作业——有效的括号
题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。解题代码:class Solution {public: bool isValid(string s) { if(s.size()%2) return...
2020-03-20 22:21:48
82
原创 数据结构与算法作业——环形链表
题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。解题算法:class Solution {public: bool hasCycle(ListNode *head) { ListNode*faster{head}; ...
2020-03-15 20:44:56
100
原创 数据结构与算法作业——删除排序链表中的重复元素
题目:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。解题算法:class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if(!head||!head->next) return head; ListN...
2020-03-12 19:59:24
109
原创 数据结构与算法作业——合并两个有序链表
题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。解题算法:class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(!l1) return l2; if(!l2) return l1; ...
2020-03-12 19:21:49
83
原创 数据结构与算法——随机猜数
题目:解题代码:#include <iostream>#include<cstdlib>using namespace std;int main(){ cout<<猜一个1-100之间的整数!"<<endl; int m,num; m=rand()%1000+1; for(int i=1;;i++) do...
2020-03-10 11:16:39
156
原创 数据结构与算法作业——买卖股票的最佳时机Ⅱ
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。解题算法(贪心法):class Solution {public: int maxProfit(vector<int>& prices) { int i=0,j=1,sum=0; ...
2020-03-10 10:27:29
119
原创 数据结构与算法——买股票的最佳时机
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。解题算法:class Solution {public: int maxProfit(vector<int>& prices) { if(prices...
2020-02-29 12:24:32
112
原创 数据结构与算法作业——合并两个有序数组
题目:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。解题算法:class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { ...
2020-02-29 11:55:33
137
原创 数据结构与算法作业——最大子序和
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。解题算法(暴力法):class Solution {public: int maxSubArray(vector<int>& nums) { int max=-INT_MAX-1;//INT_MIN=-I...
2020-02-29 11:19:19
65
原创 数据结构与算法——移除元素
题目:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。解题代码:class Solution {public: int removeElement(vector<int>& nums, int val) { ...
2020-02-21 09:23:15
62
原创 数据结构与算法作业——删除排序数组中的重复项
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。解题算法:(两指针法)class Solution {public: int removeDuplicates(vector<int>& nums) { in...
2020-02-21 08:42:14
105
原创 数据结构与算法作业--两数之和
题目:给定一个整数数组nums和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。解题代码:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> a; ...
2020-02-21 07:53:18
97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人