算法
qq_43501578
这个作者很懒,什么都没留下…
展开
-
李宏毅seq2seq(RNN LSTM GRU seq2seq)
1.回顾RNN对于RNN,要求隐藏状态的维度要相同。RNN模块是同一个网络,只是在不同时间的使用。对于RNN可以将中间层的输出作为下一层的输入,f1≠f2。其它的计算以此类推。隐藏层的激活函数选用tanh函数,对于分类问题输出层选用softmax为激活函数。2.LSTMc为记忆细胞,变化速度较慢,h为隐藏变量,变化较快。长短期记忆的门的输入均为当前时间步输入Xt 与上一时间步隐藏状态Ht−1,输出由激活函数为sigmoid函数的全连接层计算得到。如此一来,这3个门元素的值域均原创 2021-08-03 15:32:32 · 683 阅读 · 0 评论 -
22. 括号生成
题目数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。class Solution {public: vector<string> res; void dfs(string &str,int n,string s){ int left_num=count(str.begin(),str.end(),'('); int right_num=count(str.begin(),str.end()原创 2021-02-24 21:47:45 · 54 阅读 · 0 评论 -
46. 全排列
题目给定一个 没有重复 数字的序列,返回其所有可能的全排列。class Solution {public: vector<vector<int>> res;//全局变量用于存储所有结果 void dfs(vector<int> &path,vector<int> nums,vector<bool> &used){ if(path.size()==nums.size()){原创 2021-02-24 21:46:00 · 62 阅读 · 0 评论 -
78. 子集
题目给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。class Solution {public: vector<vector<int>> res; void dfs(vector<int> &path,int index,vector<int>nums){//index表示nums当前正在访问的数字 if原创 2021-02-24 21:44:53 · 64 阅读 · 0 评论 -
96. 不同的二叉搜索树
题目给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?解法一:class Solution {public: int numTrees(int n) { vector<int> nums(n+1); nums[0]=nums[1]=1; for(int i=2;i<=n;i++){ for(int j=0;j<i;j++){ nums[i]+=nu原创 2021-02-22 22:01:44 · 48 阅读 · 0 评论 -
617. 合并二叉树
题目:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-binary-trees著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。/** * Definition f原创 2021-02-21 22:39:05 · 54 阅读 · 0 评论 -
4. 寻找两个正序数组的中位数(教训)
题目:解法一:class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int m=nums1.size(),n=nums2.size(); int len=m+n; int index1=0,index2=0; int pre=-1,now=-1;原创 2021-02-03 17:13:08 · 54 阅读 · 0 评论 -
198. 打家劫舍
题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/house-robber著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。clas原创 2021-02-03 11:51:43 · 43 阅读 · 0 评论 -
94. 二叉树的中序遍历
题目:二叉树中序/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullp原创 2021-02-03 10:12:36 · 48 阅读 · 0 评论 -
42. 接雨水
题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。大佬解析:链接解法一(按列求):class Solution {public: int trap(vector<int>& height) { int left=0,right=0,mins=0; int sum=0; int size=height.size(); for(int i=1;i<si原创 2021-02-02 21:35:22 · 73 阅读 · 0 评论 -
11. 盛最多水的容器
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with-most-water著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码:双指针原创 2021-02-02 21:30:56 · 48 阅读 · 0 评论 -
394. 字符串解码
题目:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl原创 2021-02-02 13:36:16 · 60 阅读 · 0 评论 -
2. 两数相加
题目:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码:class Solution {public:原创 2021-02-02 09:10:22 · 82 阅读 · 0 评论 -
101. 对称二叉树
题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/symmetric-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一递归版优化后:class Solution {public: bool judge(TreeNode* one,TreeNode* two){ if(one==n原创 2021-02-01 15:23:25 · 52 阅读 · 0 评论 -
75. 颜色分类
题目:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-colors著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码:class Solution {public: void swap(vector<原创 2021-02-01 11:20:25 · 49 阅读 · 0 评论 -
5. 最长回文子串
题目:给你一个字符串 s,找到 s 中最长的回文子串。大神解析:原文解法一:class Solution {public: bool isvalid(string str,int low,int high){ auto i=low,j=high; while(i<j){ if(str[i]!=str[j]){ break; } ++i;原创 2021-02-01 11:16:29 · 41 阅读 · 0 评论 -
55. 跳跃游戏
题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。这道题更像是道脑筋急转弯,只要能一直往后跳就一直遍历下去,找出能跳的最远的距离。class Solution {public: bool canJump(vector<int>& nums) { int maxnum=0; for(int i=0;i<nums.size();i++){原创 2021-01-30 21:04:14 · 60 阅读 · 0 评论 -
215. 数组中的第K个最大元素
**题目:**在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。**解法一:**快排,时间复杂度爆表//快排class Solution {public://逆序 void quicksort(vector<int>& nums,int low,int high,int k){ if(low<high){ int a=nums[low];原创 2021-01-30 20:26:32 · 29 阅读 · 0 评论 -
20. 有效的括号
题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solution {public: bool isValid(string s原创 2021-01-30 17:57:08 · 83 阅读 · 0 评论 -
1. 两数之和
1. 两数之和题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:哈希表法:class Solution {pub原创 2021-01-30 17:28:44 · 48 阅读 · 0 评论