自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 资源 (8)
  • 收藏
  • 关注

原创 detectron2 linux 安装记录

detectron2 linux 安装记录记录一下安装 Detectron2 ,即FAIR开源的目标检测算法实现。首先这个库在 Linux 下是比较好安装的,之后看看能不能成功在 WIN10 上。这个问题其实一开始就得考虑好,因为我使用的是实验室设备,用的docker contianer环境,内部有anaconda3环境,里面的 pyyaml 包,它的版本是3.12,然后detectron2需要pyyaml包的版本在 5.1 以上,我不论是用 pip uninstall pyyaml还是conda

2020-09-19 17:26:52 708

原创 leetcode765_情侣牵手_贪心

一. 回溯法1. 回溯法比较容易理解,如果我们每次都能让至少1对情侣坐在一起,那么最终肯定能使所有情侣都坐在一起,但是(x,y)如果而这不是情侣,可以找到x的情侣x1,或者y的情侣y1,但是需要比较二者哪个次数更小。2. 首先变为【0,0,1,1】模式,这样只要比较数值是否相同即可找到情侣。3.回溯,首先判断第p个是不是情侣,如果x==y,是情侣,直接处理下一种情况。4. 如果不是,在p后面找情侣,因为p前面已经处理好了是情侣,分两种情况,找到x情侣,以及找到y情侣,分别交换,并最终看哪..

2020-07-26 11:39:32 190

原创 leetcode_410_分割数组的最大值_dp

1. 题目有点难,不过是一个套路,把数组分为m块的都是动态规划,i和j到底0-m-1还是1-m有点绕晕。class Solution {public: int splitArray(vector<int>& nums, int m) { int n = nums.size(); //dp表示n个数,分成m段,最大值中的最小值 vector<vector<long>> dp(n+1, vector&..

2020-07-26 10:16:05 147

原创 leetcode174_地下城游戏_dp

一. dp, 我自己的方法。 假设dp为每个位置最低需要的血量,初始化为1。可以反着推导dp,设置最右下角,dp[m-1][n-1] = 1;从右下角开始推导到左上角。三种情况:1. 就是右下角,所需最少血量1 - dungeon[i][j],如果小于0,则为1滴血就够了;2. 如果不是最后一列,最低血量为前一格子减去当前,为dp[i][j+1] - dungeon[i][j],并和1比较;3. 如果不是最后一行,也不是最后一列,为右边和下边最小的一个,min(dp[i][j+1],...

2020-07-25 15:59:26 112

原创 leetcode11_盛最多水的容器

1.双指针法. 这种方法背后的思路在于,两线段之间形成的区域总是会受到其中较短那条长度的限制。此外,两线段距离越远,得到的面积就越大。2.如果我们试图将指向较长线段的指针向内侧移动,矩形区域的面积将受限于较短的线段而不会获得任何增加。但是,在同样的条件下,移动指向较短线段的指针尽管造成了矩形宽度的减小,但却可能会有助于面积的增大。class Solution {public:...

2020-04-08 18:05:03 74

原创 leetcode10_正则表达式匹配

1.class Solution {public: bool isMatch(string s, string p) { int len1 = s.length(), len2 = p.length(); vector<vector<int>> dp(len1 + 1, vector<int>(len2 + 1, 0)); ...

2020-04-08 17:10:58 105

原创 leetcode9_回文数_判断整数是否回文数

1. 负数不是.2. 溢出也不是.3. 时间复杂度log(x).class Solution {public: bool isPalindrome(int x) { if(x<0) return false; int sum=0; int oldx = x; while(x){...

2020-04-08 12:05:56 211

原创 leetcode8_字符串转换整数

class Solution {public: int myAtoi(string str) { int k = 0; long number = 0; while (str[k] == ' ') k++; if (str.length() == 0) return 0; if (str[k] != '+' && str[k] != '-' &am...

2020-04-08 11:32:59 98

原创 leetcode7_整数反转

1.溢出前进行检查2.要在没有辅助堆栈 / 数组的帮助下 “弹出” 和 “推入” 数字,我们可以使用数学方法。//pop operation:pop = x % 10;x /= 10;//push operation:temp = rev * 10 + pop;rev = temp;class Solution {public: int reverse...

2020-04-08 10:59:42 81

原创 leetcode6_Z字形变换

class Solution {public: string convert(string s, int numRows) { if (numRows == 1) return s; vector<string> rows(numRows); int curRow = 0; bool goingDown =...

2020-04-08 10:20:24 293

原创 leetcode4_寻找两个有序数组的中位数

1.在统计中,中位数被用来:将一个集合划分为两个长度相等的子集,其中一个子集中的元素总是大于另一个子集中的元素。2. 解法1简单粗暴,先将两个数组合并,两个有序数组的合并也是归并排序中的一部分。然后根据奇数,还是偶数,返回中位数。class Solution {public: double findMedianSortedArrays(vector<in...

2020-04-07 13:27:36 112

原创 leetcode5_最长回文子串

1. 动态规划.2.考虑 “ababa” 这个示例。如果我们已经知道“bab” 是回文,那么很明显,“ababa” 一定是回文,因为它的左首字母和右尾字母是相同的.3.class Solution {public: string longestPalindrome(string s) { int len=s.size(); if(...

2020-04-07 10:43:27 100

原创 leetcode3_无重复字符的最长子串_滑动窗口

class Solution {public: int lengthOfLongestSubstring(string s) { //初始条件 if(s.length()==0) return 0; int left = 0, right = 0; map<char, int> window; ...

2020-04-06 23:18:19 127

原创 leetcode2_两数相加_链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*...

2020-04-06 23:02:08 160

原创 leetcode1_两数之和_哈希表

//1,普通解法// class Solution {// public:// vector<int> twoSum(vector<int>& nums, int target) {// vector<int> result;// for (int i = 0; i < nums.size()...

2020-04-06 22:55:21 154

原创 写树算法的套路框架(摘抄labuladong大神)

1. 但是这个算法出现了错误,BST的每个节点应该要小于右边子树的所有节点,下面这个二叉树显然不是 BST,但是我们的算法会把它判定为BST。2.出现错误,不要慌张,框架没有错,一定是某个细节问题没注意到。我们重新看一下 BST 的定义,root 需要做的不只是和左右子节点比较,而是要整个左子树和右子树所有节点比较。怎么办,鞭长莫及啊!3. 很简单,其...

2020-03-14 12:48:40 716

原创 leetcode100_相同的树_二叉树

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */c...

2020-03-14 10:46:07 76

原创 leetcode150_逆波兰表达式求值_栈

1. 整体思路,定义数据栈存放数据, 只要遇到运算符就出栈两个数做加减乘除处理.class Solution {public: int evalRPN(vector<string>& tokens) { stack<int> st; for(int i=0;i<tokens.size();i++) { ...

2020-03-14 10:31:50 129

原创 leetcode876_链表的中间节点

一. 迭代.1. 时间O(n), 空间O(1)./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solu...

2020-02-17 16:52:54 114

原创 leetcode234_回文链表

一. 迭代1. 边移动快慢指针边反转链表的前半部分,等找到链表中点,再将前半部分与后半部分依次比较,判断是否为回文链表.//大佬的思路, 反转后半部分.class Solution {public: //题解:快慢指针法,快指针走两步,慢指针走一步,找到链表的中点。然后,翻转后半部分。最后从头、中点开始判断是否相同。 bool isPalindrome(ListNod...

2020-02-17 16:44:10 133

原创 leetcode206_反转链表_迭代+递归

一. 迭代1. 有pre, cur还要保存cur->next.class Solution {public: ListNode* reverseList(ListNode* head) { if(head==NULL || head->next==NULL) return head; //前驱指针,cur需要指向它. ...

2020-02-16 23:24:06 108

原创 leetcode141_重排链表

一.迭代1. 将链表转换为数组,然后用双指针分别取出头尾指针.2. 相当于耍赖用数组转化链表./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL...

2020-02-16 16:53:54 168

原创 leetcode142_环形链表||

一. 参考 leetcode141_环形链表_双指针https://blog.csdn.net/qieyuan4083/article/details/104336903二. 哈希表,第一个重复的即为环的入口.时间O(n),空间O(n).三. Floyd算法.第一阶段,找到链表是否有环,有环的话再找到相遇节点./** * Definition for singly-linke...

2020-02-16 00:15:43 73

原创 leetcode141_环形链表_双指针

一. 用哈希存储已经访问过的链表节点,如果有重复,则有环, 否则检测到链表末尾则无环.二. 双指针.1. 使用不同速度快慢指针,空间复杂度O(1)./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode...

2020-02-15 23:49:37 119

原创 leetcode133_克隆图_回溯

一. 可以参考leetcode138_复制带随机指针的链表,https://blog.csdn.net/qieyuan4083/article/details/104332467二. 回溯就是遍历, 运用DFS和BFS方法.1. DFS./*// Definition for a Node.class Node {public: int val; vector...

2020-02-15 20:14:14 181

原创 leetcode138_复制带随机指针的链表

一. 回溯1. 当random访问了一个新的节点,需要创建它, 否则直接返回旧的指针就好.2. 特别注意,哈希表中传入的都是指针,所以一定会是Node*类型,而不是Node./*// Definition for a Node.class Node {public: int val; Node* next; Node* random; ...

2020-02-15 19:04:19 173

原创 leetcode92_翻转链表||_递归

一. 递归1. 参考这个作者写的太好了,包括解决反转链表的所有思路.作者:labuladong链接:https://leetcode-cn.com/problems/reverse-linked-list-ii/solution/bu-bu-chai-jie-ru-he-di-gui-di-fan-zhuan-lian-biao/2. 这题是反转m到n区间的链表,如果将head移...

2020-02-15 11:12:31 172

原创 leetcode61_旋转链表

一. 迭代1. 先将链表闭合成环.2.找到相应的位置断开这个环.class Solution {public: ListNode* rotateRight(ListNode* head, int k) { //边界条件. if(head==NULL || head->next==NULL || k==0) return head;...

2020-02-14 17:42:09 108

原创 leetcode24_两两交换链表中的节点_递归

一. 递归1. 真正的交换节点的意思就是1->2变为2->1.2. 时间O(n), 空间O(n), 递归过程使用堆栈空间./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x)...

2020-02-14 16:19:31 215

原创 leetcode21_合并两个有序链表_迭代+递归

一. 递归1. 两个链表较小的元素与剩下的元素merge并合并.2. 时间复杂度O(n+m). 空间也为O(n+m). 有n+m个帧栈.class Solution {public: //函数mergeTwoLists的作用是返回合并好的链表的头结点. ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ...

2020-02-14 11:07:24 231

原创 leetcode19_删除链表的倒数第N个节点_链表_双指针_递归

1. 最简单的想法就是先求出链表的长度len,再找到(len-k)个节点,即删除节点的前一个节点,就可以将其删除.2. 两次遍历./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val...

2020-02-14 09:33:22 164

原创 leetcode2_两数相加_链表

1. 用carry来每次更新进位.2. 考虑特殊情况, [0,1]和[0,1,2], []和[0,1], [1]和[9,9], 即额外的进位./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x)...

2020-02-13 21:48:03 134

原创 leetcode215_数组中的第K个最大元素

1. 方法1, 可以升序排序后找到 len-k 索引的数即为第k个最大元素, 因为排序O(nlog(n)).2. 虽然思路简单,但是能为高级算法铺路.3. 方法2. 借助快排中partition的思想, 因为快排每次都能排好一个数,这个数左边的都小于他, 右边都大于他.class Solution {public: void swap(int &a, int ...

2020-02-07 11:27:34 111

原创 leetcode862_和至少为K的最短子数组_单调双端队列&前缀和

1. 这题感觉真的很难, 首先求和的方法转换为前缀和的形式,避免重复计算.想求[i,j]区间则为sum[i+1]-sum[j].2. 运用单调双端队列解决应该选择哪个区间的问题.因为如果存在负数,则需要把包含负数区间的求和去掉,因为负数后面的数肯定也符合条件>=K,而且长度也比较小.class Solution {public: int shortestSubarra...

2020-02-06 21:19:29 193

原创 leetcode41_缺失的第一个正数_数组技巧

1. 这题其实没有想象中的那么难,关键得利用数组的特性,我们得将不在正确位置的数放在对应的正确的位置上,然后再遍历,得到不满足条件的那个数,即为缺失的那个数.2. 卡了好长时间是因为这个交换两个数需要特别注意,顺序错了不行,因为交换的数的索引含有nums[i],即为nums[nums[i]-1],因此顺序一点不能错,这也是最需要注意的地方.class Solution {publi...

2020-02-06 15:34:57 128

原创 leetcode26_删除排序数组中的重复项_快慢指针

1. 这种题目一眼就是快慢指针问题, 原地修改数组.class Solution {public: int removeDuplicates(vector<int>& nums) { //边界情况. if(nums.size()<=1) return nums.size(); //定义快慢指针. ...

2020-02-06 10:55:22 135

原创 leetcode154_寻找旋转排序数组中的最小值||_二分查找

1. 这一题和leetcode153最大的区别就是可以拥有重复元素.2. 照例使用二分查找, 重点看下else那里,最长的注释部分解释.3. 可以参考二分查找模板,https://blog.csdn.net/qieyuan4083/article/details/102526281, 这是二分查找通用模板.class Solution {public: int fin...

2020-02-05 21:11:44 91

原创 leetcode153_寻找旋转排序数组中的最小值_二分查找

1. 这题虽然不是完全有序,但是部分有序,可以试试二分查找方法,并且使用的是数组这样的存储形式,根据下标随机访问,适合二分.class Solution {public: int findMin(vector<int>& nums) { //边界情况. if(nums.size()==1) return nums[0]; ...

2020-02-05 19:50:14 103

原创 leetcode1052_爱生气的书店老板_滑动窗口

1. 这题其实最关键的是转换思路. 不生气时间段的人数和都是固定的, 所以题目的意思是让求连续X时间段内生气的人数和的最大值.2. 可以运用滑动窗口.看窗口大小为X的窗口内,不生气的人数和的最大值是多少.class Solution {public: int maxSatisfied(vector<int>& customers, vector<i...

2020-02-03 10:42:11 160

原创 leetcode1040_移动石子直到连续||_滑动窗口

1. 这题出的真的乍一看到一点思路都没有.2. 参考别人的题解才看出端倪.3. 首先看最大移动次数是多少.因为只要我们将第一个数字stones[0]移动到stones[1]后,接下来就一定可以以间隔1按照剩下的缝隙填补,所以移动次数是stones[len-1]-stones[1]-len+2, 反过来从末尾往前看,移动次数是stones[len-2]-stones[0]-len+2, ...

2020-02-02 20:31:05 199

C++写的算法(适用找工作,涵盖几乎所有题型)

代码初学者十分友好,因为自己本身就是小白。具体详细解法可以关注我的博客https://blog.csdn.net/qieyuan4083/ (可以从第1篇看起,循序渐进更好)。压缩文件里有些代码博客里没有。

2020-08-19

初学者GAN代码(最好的,直观,代码简单,涵盖30多个)

初学者入门GAN最好的代码。代码非常简单,下载好数据集后全部可以运行,几乎包括之前所有主流的30多个GAN代码,方便快速上手。

2020-08-19

强化学习实例(直接运行,直观,方法可替换,初学者代码友好)

强化学习模仿写的一段自动打乒乓球可视化的实例,直接运行val.py可观察到可视化结果,另外附上训练好的.pth文件,方便看到每一步运行过程,运行时直接替换对应的pth文件即可。

2020-08-19

吴恩达深度学习编程作业

吴恩达深度学习编程作业,入门深度学习的绝佳资源,包含非常优秀的代码资源.

2018-12-05

吴恩达机器学习课程笔记代码资料全套

吴恩达机器学习课程笔记代码资料全套,非常适合机器学习入门者学习借鉴.

2018-12-05

opencv-python中文教程

入门opencv-python绝佳的文档,短小精悍,但是全部干货

2018-09-21

TensorFlow实战黄文坚python代码

TensorFlow实战黄文坚版是介绍tensorflow比较详细的一本入门书籍,非常全面,经过测试,书内的代码基本上全部可以跑通,是一本不可多得的入门好书。

2018-04-10

LeetCode 完整版题解(含代码,高清PDF)

LeetCode 完整版题解(含代码,高清PDF),找工作以及招聘的人以及ACM新手必备刷题攻略

2018-04-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除