自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 图像分类 (image classification)

1. 任务图像分类的任务是判断该图像所属类别。2. 常用数据集难度递增:MNIST、CIFAR-10、CIFAR-100、Image-Net3. 分类经典网络结构LeNet-5、AlexNet、VGG-16 / VGG-19、GoogLeNet、Inception v3 / v4、ResNet、preRestNet、RexNeXt、随机深度、DenseNet、SENet今天觉得AI还挺...

2019-06-27 16:54:43 7869

原创 【LeetCode 41.】First Missing Positive

题目大意:在一个无序数组里找出第一个没出现的正数。思路:关键点在于,这个数字一定是1 - n+1的一个数字。可以用map标记,但是这样用了额外的空间。还可以直接对数组操作,把在这个范围的数字都放到自己的对应位置,然后遍历数组,找到第一个不符合的位置。代码:代码1:class Solution {public: int firstMissingPositive(vector...

2019-06-27 11:14:40 85

原创 【LeetCode 23.】Merge k Sorted Lists

题目大意:给出 n 个有序链表,合并为1个有序链表。思路1:优先队列。每次取n个链表的最小值,然后把取出节点的next节点加入队列。思路2:每次合并2个。时间复杂度不太会计算。链表除了操作麻烦还是和数组不一样的,有自己的特性。这道题感觉出来了。代码:代码1:/** * Definition for singly-linked list. * struct ListNode {...

2019-06-27 10:46:24 83

原创 【LeetCode 4.】Median of Two Sorted Arrays

题目大意:给两个有序数组,求出合并以后的中位数。要求时间复杂度:O(m+n)思路:思路1:分别标记两个数组的移动位置,移动两个数组当前小的那个数字所在位置,直到移动到中位数所在位置。时间复杂度 O(n)。思路2:二分。问题转化为求所有数字的第k小数,每次比较a[k/2-1]和b[k/2-1],如果两个数字相等,则找到第k小数。否则可以排除掉k/2个数字。时间复杂度 O(log(m+n))...

2019-06-26 14:30:21 105

原创 【LeetCode Contest 142.】1093 - 1096

…周赛一道题都没出,先是晚上了半个点。然后1093读错题,mode疯狂猜想是取模,原来是众数。然后1094以为是树状数组或者并查集,原来只是一个模拟。后两道没看,比赛就过去了。过去了。去了。了。卒。1093. Statistics from a Large Sample对0 to 256的数进行采样,每个数字可能采样 0 to 10910^{9}109次,求出采样数据的最小值,最大值,平均数...

2019-06-24 11:14:39 299

原创 【LeetCode 407】Trapping Rain Water II

题意:存水的升级3维版。这次想要存水必须得四个方向的比当前位置高了。思路:边缘的位置肯定不能存水,加入队列。从高度小的点开始搜索,类似水位上升逐渐淹没的过程。下一个位置如果比当前位置高,那肯定也存不了水,直接加入队列。如果比当前位置低,说明下一个点的围墙高度最低就是当前位置的高度了,根据水位和下一个位置的高度计算存水量。代码:class Solution {public: st...

2019-06-21 10:17:08 78

原创 【LeetCode 42】Trapping Rain Water

题目大意:一个数组表示各个点的高度,问能存储多少水。思路:对每个点求出它左面和右面的最大值,就可以求出当前点能存储的单元。代码:class Solution {public: int trap(vector<int>& height) { if (height.empty()) return 0; int n = height...

2019-06-20 15:16:40 86

原创 【LeetCode 815】Bus Routes

题目描述:给出一些公交路线,起点和终点,问从起点最少搭乘多少班公交能到达终点。题意好像路线不循环走,看了题解发现是循环走。思路:bfs,起点站开始,可以搭乘的路线标记,路线的站点标记,对于新的站点能搭乘的新的路线标价。有点绕。代码:class Solution {public: int numBusesToDestination(vector<vector<int...

2019-06-20 10:49:25 228

原创 【LeetCode 126】Word Ladder II

题目描述:和125一样的题意,每次改变一个字符,中间单词只能是字典里出现过的,要求输出最短路径的所有方案。思路:先用bfs建图,保存所有最短路径里的每个结点的父亲结点。然后用dfs,从最后的单词开始,保存路径。这里的bfs和之前的不太一样,step在每一层结束以后+1。代码:class Solution {public: vector<vector<string...

2019-06-19 17:06:48 68

原创 【LeetCode 934】Shortest Bridge

题目描述:给一个01矩阵,0表示水,1表示相连的岛。一共有两个岛。问最少填多少个0,能把两个岛连接起来。思路:先找到随机一个岛,并用bfs把这个岛的值和step值设置为-1和0。然后以这个岛上的任意一点开始bfs,找到1记录此时最小值,否则加入队列。找到1以后还是要继续搜索,最后返回最小值。代码:class Solution {public: int dir[4][2] =...

2019-06-18 16:00:28 134

原创 【LeetCode 864 】Shortest Path to Get All Keys

题目描述:二维矩阵,小写字母对应大写字母的钥匙。有墙和门,不能穿过墙,遇见门时只有有钥匙才能过去。问最少走多少步能拿到所有的钥匙。思路:bfs,开始是像普通bfs一样,记录每个位置的步数。后来试图标记钥匙的个数。原来是标记拿到的所有钥匙。。。。因为钥匙最多只有6把,可以用位运算来判断当前是否有这把钥匙。代码:class Solution {public: struct Nod...

2019-06-18 10:59:25 182

原创 【LeetCode 127】Word Ladder

题目描述:给两个单词和一个单词列表,每次转换只能改变一个字母,且只能变为在单词列表里的单词。问最少变换多少次,beginword能变为endword。思路:bfs。对单词的每个字母尝试26种变换,如果该单词在列表里,加入队列。一直超时,把vector改为set以后,对于每次出现过的单词都直接删除。可以节省查找时间,然后就过了。bfs方式,先找到的一定是步数最少的么。代码:class ...

2019-06-17 20:06:29 114

原创 【LeetCode Contest 141】

第一场leetcode周赛,10:45才想起来。比赛链接:https://leetcode.com/contest/weekly-contest-141/前两道都是逻辑题,比较简单,但是读题太慢了,加上C++语法不熟悉,老是出错。第三道1091 bfs,直接记录步数,当前位置的相邻位置没有访问过或者步数更新了时,加入队列。没有任何技巧的bfs。还是读题没读懂,耽误了很久。第四道是hard难...

2019-06-17 11:14:49 170

原创 【LeetCode 102】Binary Tree Level Order Traversal

题意:对二叉树按层遍历。每一层一行。思路:bfs。每次要打印一个结点时,先把它的子节点加入到队列当中 。用两个数字计数表示当前层和下一层的剩余结点数和当前结点数。做过了。还是不会。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left...

2019-06-13 11:33:19 85

原创 【LeetCode 301】Remove Invalid Parentheses

题意:给一个可能包含小写字母的括号串,求出在去掉最少括号之后的所有合法串。思路:dfs。统计括号,需要删除字符时,从上次遍历到的位置到当前位置,尝试所有可以删除的字符,递归到下一问题。代码:class Solution {public: vector<string> ans; vector<string> removeInvalidPa...

2019-06-13 10:39:57 83

原创 【LeetCode 394】Decode String

题意:对字符串解码,数字+[字符串],数字表示重复次数。思路:想法很简单,递归解码方括号。代码:class Solution {public: int index = 0; string decodeString(string s) { return dfs(s, 0, 0); } string dfs(string&...

2019-06-12 10:53:59 66

原创 【LeetCode 337】House Robber III

题意:抢劫。这个小区住房呈二叉树结构,如果抢了直接相连的两家,就会自动报警。问,最多能抢的钱。思路:dfs,每棵子树返回抢根节点和不抢根节点的最大价值。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod...

2019-06-12 09:12:15 73

原创 【LeetCode 114】Flatten Binary Tree to Linked List

题意:把一棵二叉树展开成链表。思路:dfs,先把左子树和右子树分别展开,然后把左子树放在右子树的位置,右子树接在左子树的后面。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * ...

2019-06-11 17:07:22 67

原创 【LeetCode 116】Populating Next Right Pointers in Each Node

题意:把一棵完美二叉树的每一层的节点的next指针指向右边的节点。思路:dfs。代码:/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; Node* next; Node() {} Node(int _val, Node*...

2019-06-11 16:32:57 78

原创 【LeetCode 124】Binary Tree Maximum Path Sum

题意:给一棵二叉树,求这棵树里能找到的和最大的路径。至少包含一个结点。思路:dfs,返回的是包含当前节点的树,包含左子树或右子树的最大路径和。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *ri...

2019-06-11 15:39:11 77

原创 【LeetCode 210】Course Schedule II

题意:在判断能否修完全部课程的基础上,如果能,输出任意一个课程顺序。思路:递归。在判断是否有环的基础上,记录访问顺序。代码:class Solution {public: vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) { ...

2019-06-10 20:41:13 106

原创 【LeetCode 130】Surrounded Regions

题意:给一个由 “O” 和 “X”组成的二维数组,把完全由X包围的O改为X。在边上的“O”不是被完全包围。思路:dfs。代码:class Solution {public: void solve(vector<vector<char>>& board) { if (board.empty()) return; i...

2019-06-10 16:03:45 100

原创 【LeetCode 207】Course Schedule

题意:学习一门课程,要有先置课程。给出每门课程需要先置的课程,问是否能全部修完。思路:递归。建图,对每个节点,判断是否存在环。标记数组,标记已判断过的节点和当前环是否遍历到,如果重复遍历,表示有环。代码:class Solution {public: bool canFinish(int numCourses, vector<vector<int>>&a...

2019-06-10 10:37:35 114

原创 【LeetCode 108】Convert Sorted Array to Binary Search Tree

题目描述:给一个排序数组,输出任意一种构成的平衡BST结构,平衡即任意节点的左右子树深度差不大于1。思路:递归,当前数组的中间节点作为根节点,对节点两侧分别建树作为左右子树。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ...

2019-06-10 09:22:30 93

原创 【LeetCode 105】Construct Binary Tree from Preorder and Inorder Traversal

题意:给出二叉树的前序和中序遍历,建造出二叉树。思路:dfs,根据前序的第一个值是树的根节点,在中序中找到根节点,然后分为左右子树,这样递归解决。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *...

2019-06-05 19:31:39 76

原创 【Leetcode 101】Symmetric Tree

题意:判断二叉树是否是镜像的。思路:dfs。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL),...

2019-06-05 15:10:36 77

原创 【LeetCode 98】Validate Binary Search Tree

题意:判断一棵二叉树是否是BST树。思路:dfs,记录当前节点要求的范围,搜到左节点时,更新左边界,右节点时,更新右边界。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * ...

2019-06-05 11:46:46 69

原创 【LeetCode 416】Partition Equal Subset Sum

题意:问能否把一个数组分成两个子集,使两个子集的和相等。思路:动态规划。转化为判断数组能否组成 sum/2 的数字。代码:class Solution {public: bool canPartition(vector<int>& nums) { if (nums.size() == 1) return false; int ...

2019-06-04 20:46:31 68

原创 【LeetCode 312】Burst Balloons

题意:一组气球,每个气球上标着一个数字,打破一个气球可以获得这个位置和相邻位置的数字乘积的硬币。问能得到的最大硬币数是多少。思路:动态规划。dp[i][j] 表示从位置 i 到 位置 j 能得到的最大硬币数。遍历最后一个打破的气球,就可以把问题划分为子问题。代码:class Solution {public: int maxCoins(vector<int>&amp...

2019-06-04 20:01:30 74

原创 【LeetCode 494】Target Sum

题意:给一个数组,里面的数字都是非负的,然后一个目标值,问如何安排它们的正负号可以使得数组之和正好为目标值。思路:递归,时间复杂度 O(2^n)。动态规划,时间复杂度 O(n*sum),空间复杂度O(n*sum)可以优化到O(sum)。状态方程ways[i][j]表示前 i 个数字,计算得到 j 的方式。代码:递归:class Solution {public: int ...

2019-06-04 15:10:33 101

原创 【LeetCode 309】Best Time to Buy and Sell Stock with Cooldown

题意:股票交易,手里只能持有一股,且卖出以后必须休息一天,不限制总共的交易次数,求能获得的最大利益。思路:动态规划,涉及到三种状态的状态转移。边表示今天的操作。代码:时间复杂度O(n),空间复杂度O(n),但是当前状态之和前一天状态有关,可以优化到O(1)。class Solution {public: int maxProfit(vector<int>&am...

2019-06-04 10:32:25 90

原创 【LeetCode 221】Maximal Square

题目描述:在给定的二维01数组中,找到1能构成的最大面积的正方形,返回面积。思路:动态规划。以 i, j 为右下方点的正方形边长,取决于其上、左、右三个点的正放心长度。代码:class Solution {public: int maximalSquare(vector<vector<char>>& matrix) { if (m...

2019-06-03 20:12:23 60

原创 【LeetCode 96】Unique Binary Search Trees

题意:求某长度的二叉搜索树的结构数。思路:以 i 为顶点时,结构数等于左子树长度为 i-1,右子树长度为 n-i 分别得到的结构数乘积。代码:递归超时:class Solution {public: int dfs(int n) { if (n == 1 || n == 0) return 1; int ans = 0; for...

2019-06-03 10:01:13 80

原创 【To Do List】六月

美好的五月过去了。好像没有发生什么美好的事。五月总结开始了一场 kaggle,然后不知道为什么跑的不稳定,跑了两天停了,跑一天停了。心灰意冷,不再尝试。但至少有了baseline,算是实践的开始吧。看了一个项目,是学长的毕设,fpn+attention应用在车辆细分类,看懂了,效果却没有那么好。刷了大概25道左右的题,最后一周只刷的动态规划。看了两篇细分类方面的论文,没看源码,没跑。...

2019-06-01 16:43:09 187

原创 【LeetCode 84】Largest Rectangle in Histogram

题意:给一个数组,表示直方图各长条的高度,计算直方图中最大矩形面积。思路:左右扫描法:对当前位置的高度向左向右计算延伸距离,可以用到之前的计算结果,节省时间。否则会超时。栈:依次遍历所有矩形条,尝试计算以该矩形条为高度的矩形面积。但是在遍历的时候我们不知道后面还有什么样的矩形条怎么办?没关系,对于没法确定面积的矩形,压栈,留着以后处理,而对于那些已经可以确定计算出面积的矩形条,留着也没用...

2019-06-01 15:31:01 92

空空如也

空空如也

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

TA关注的人

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