自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jason Zhou

不完整的学习记录

  • 博客(161)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++ string提取空格之间的substring的方法

直接放上题目leetcode71题目主要是如何提取/和/之间的字串,强行做事可以的,但是很麻烦,所以下面放出代码:class Solution {public: string simplifyPath(string path) { vector<string>st; string tmp, res = ""; stringstream ss(

2017-09-19 10:22:57 5699

原创 利用K-NN通过PCA进行图片分类

这是一个小项目,用K-NN通过PCA进行图片分类。首先惯例,破竹先放出github数据是用cifar-10的第一个batch的前1000个图片K = int(sys.argv[1]) D = int(sys.argv[2]) N = int(sys.argv[3]) file = sys.argv[4]分别代表:k个邻居,PCA降到d维,0到n是test,n

2017-09-01 13:11:07 2133

原创 C++ string提取某一段被分割的子串

直接放上题目leetcode71 题目主要是如何提取/和/之间的子串,强行做事可以的,但是很麻烦,所以下面直接放出代码:class Solution {public: string simplifyPath(string path) { vector<string>st; string tmp, res = ""; stringstream

2017-08-25 08:39:41 3925

原创 C++ 堆排序和堆的其他基本操作

在刷到一道堆的题目的时候又忘记怎么写堆了,如果不写成优先队列的话。所以破竹写这篇博客了记录堆得相应的写法。题目是leetcode215 首先heap的建立是:void build_max_heap(vector<int>& nums){ heap_size = nums.size(); for(int i = (heap_size >> 1) - 1; i >= 0;

2017-08-25 07:32:02 566

原创 C++中重载和排序问题的简单写法

之前做题发现又要写重载,不熟练导致次次都忘记,所以破竹就在这里简单记录C++简单的重载方法。priority_queue<node>qu;以优先队列为例子,重载的代码如下:typedef struct node{ ListNode* t; bool operator < (const node &b)const{ return t -> val

2017-08-23 01:43:57 2020

原创 C++中的int和string的相互转换

大家在写c++的时候肯定会遇到int和string的相互转换的问题,这里破竹讲的不适用stringstream这个方法,而是其他简单的函数。string转int int atoi(char *str) 这个是将char转成int c_str() 这个是将string对象转化成char 所以假设string s int n n = atoi(s.c_str());或者更快的是int st

2017-08-22 10:12:08 402

原创 C++最好用的2分算法 防止边界

如题,这题没写,用别的人c 2刷的时候要写一下c++思路就是先把每一个单词的顺序转换,最后在全部转换一次,这样子单词的顺序就就反了,每个单词的拼写还是原来那样 转一次再转一次!如题,这题没写,用别的人c 2刷的时候要写一下c++思路就是先把每一个单词的顺序转换,最后在全部转换一次,这样子单词的顺序就就反了,每个单词的拼写还是原来那样 转一次再转一次!

2017-08-22 06:07:31 1151

原创 如何用Tensorflow训练模型成pb文件和和如何加载已经训练好的模型文件

这篇薄荷主要是讲了如何用tensorflow去训练好一个模型,然后生成相应的pb文件。最后会将如何重新加载这个pb文件。 首先先放出PO主的github: https://github.com/ppplinday/tensorflow-vgg16-train-and-test其中的pitcute文件是狗和猫的图片分别15张一共30(别吐槽,只是为了练手学习的233333), train那个就

2017-07-18 10:28:51 72597 34

原创 Alexnet在android手机中的tensorflow和arm compute libraray的性能对比

首先先说明一下这个alexnet是进过修改的网络,由于模型太大,我把alexnet的全连接层6和全连接7给删除了,测试手机是红米Note 4X,cpu是高通骁龙625。分别放出测试代码的github arm compute library: https://github.com/ppplinday/alexnet-armcomputelibrary-android-withoutfc67te

2017-07-07 17:27:07 2693 3

原创 如何通过ARM Compute Library写深度学习模型

在上一篇博客中已经讲了挺多关于arm compute library的情况。 传送们在这里!!! http://blog.csdn.net/u014432647/article/details/73613642这篇薄荷主要是想将一下如何用arm compute library写深度学习模型。这里以vgg16为例子,再一次放上我自己写的vgg16的github!!!(vgg16的代码放在exa

2017-07-07 16:54:26 8949 4

原创 github生产SSH和查看相应的SSH

用以下的代码可以生成和复制SSHssh-keygen -t rsa -C "$your_email"cat ~/.ssh/id_rsa.pub

2017-07-07 12:19:24 2406

原创 关于github不给上传100m以上文件的错误:this exceeds GitHub's file size limit of 100.00 MB的解决方法

小伙伴们肯定试过上传不了超过100m以上的文件到github吧!所以我们需要用到一个叫lfs的工具专门用来上传大文件的!!! 先放一下我的github: https://github.com/ppplinday/vgg16-by-ARM-Compute-Library可以发现在vgg16_weight中有两个大于100m的文件fc6_W.csv和fc7_W.csv,这里用这个作为例子啦!安装

2017-07-07 12:06:35 16602 3

原创 github的简单入门操作

初始化和跟新代码:cd $project_rootgit initgit add .git commit -m 'init commit'git remote add origin git@example.com:namespace/projectname.gitgit push origin master #或者是git push -u origin master+出现的问题: fat

2017-07-06 18:08:35 271

原创 通过ARM Compute Library写的VGG16的模型

不是通过tensorflow和caffe配置的,是通过ARM Compute Library写的。 首先放出ARM Compute Library的github: https://github.com/ARM-software/ComputeLibrary具体的操作方法和基本的examples实现上面都有,这个的确很麻烦,操作了很久。 VGG16就不用多说吧,深度学习的都懂。我是在Linu

2017-06-23 09:50:59 6339 8

原创 150. Evaluate Reverse Polish Notation

简单题,直接用栈搞定class Solution {public: int evalRPN(vector<string>& tokens) { stack<int>st; for(int i = 0; i < tokens.size(); ++ i){ if(tokens[i] == "+" || tokens[i] == "-" |

2017-02-17 12:06:36 267

原创 149. Max Points on a Line

给好多点你,然后求出最多的点处于同一条直线,就是暴力,然后用map记录 Ps 如果是垂直的话,k是INT_MAX,有可能有很多点是同一点, 不要重复判断/** * Definition for a point. * struct Point { * int x; * int y; * Point() : x(0), y(0) {} * Point(int

2017-02-17 12:06:01 220

原创 148. Sort List

如何求列表的sort?就是用归并排序,好好学习这个方法,递归先求中点,然后求前面的sort,之后求后面的sort,最后merge!/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), n

2017-02-17 12:05:14 226

原创 146. LRU Cache

模拟题,思路简单,但是难是难在对c++ 的用法!!!要好好学习!!! 2刷还要解决超时问题和自己写一次!class LRUCache{private: typedef pair<int,list<int>::iterator> PILI; int capacity; map<int,PILI> datas; list<int> s;public: LRUC

2017-02-17 12:04:34 268

原创 145. Binary Tree Postorder Traversal

想不懂为什么是hard。。。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {}

2017-02-17 12:03:34 199

原创 144. Binary Tree Preorder Traversal

求preorder,没啥好说的/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {}

2017-02-17 12:02:40 178

原创 143. Reorder List

好题!!!虽然简单当时还是要想很多东西的! 3步//Find the middle of the list//Reverse the half after middle 1->2->3->4->5->6 to 1->2->3->6->5->4//Start reorder one by one 1->2->3->6->5->4 to 1->6->2->5->3->4/** * Defini

2017-02-17 12:01:29 208

原创 141.142. Linked List Cycle

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

2017-02-17 12:00:08 169

原创 140. Word Break II

很难的一道题2 刷研究吧,别人的代码class Solution {public: unordered_map<string, vector<string>> m; vector<string> combine(string word, vector<string> prev){ for(int i=0;i<prev.size();++i){

2017-02-17 11:59:15 376

原创 139. Word Break

一开始用了dfs超时了,后来用了dp ok了,dp i 代表前i个数是否可以分class Solution {public: bool wordBreak(string s, unordered_set<string>& wordDict) { if(s.size() == 0) return false; vector<int>dp(s.size() +

2017-02-17 11:58:43 162

原创 137. Single Number II

Awesome的一个方法!!!要想明白这个方法 1刷还是想不懂~one和~two的作用,估计是防止one出现第三次的时候消除吧 2刷一定要想明白!!最好学多一种新的方法!class Solution {public: int singleNumber(vector<int>& nums) { int one = 0, two = 0; for(int i

2017-02-17 11:57:40 196

原创 136. Single Number异或

好题,学到新的知识,异或运算的使用!!! a^b^a=b,其实用两次异或相当于把相应的1消除!class Solution {public: int singleNumber(vector<int>& nums) { int n = 0; for(int i = 0; i < nums.size(); ++ i) n ^= nums

2017-02-17 11:56:21 178

原创 135. Candy

三个心里路程 1,一开始上课想的,以为这题是离散化就搞定了,其实不是 2,想到正确办法,就是找向上升后下降的区间,上升区间从一开始往后加,下降区间从一开后往前加,顶点根据上升长还是下降长,最麻烦是有相同的数,相同的数不收规则影响,所以还要判断,这题可以这样做,但是写起来超级复杂 3,就是第2的思路,用了一个简化的方法,一遍从前到后,一遍从后到前(简化不用找先升后降区间的判断),然后那个大要哪个

2017-02-17 11:55:37 253

原创 134. Gas Station

思路很简单,顺便选一个点开始,往前加,如果总值少于0,就往后包一个点,主要是最后输出要分情况要小心!class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int n = gas.size(); int sum = 0; if(

2017-02-17 11:55:08 196

原创 132. Palindrome Partitioning II

一开始还用上一题的方法一定超时了,没想到,dp还是难,要2刷和理解 Calculate and maintain 2 DP states: 1. pal[i][j] , which is whether s[i..j] forms a pal 2. 3. d[i], which is the minCut for s[i..n-1] 4. Once we comes to a pa

2017-02-17 11:54:17 170

原创 131. Palindrome Partitioning

Dfs求出每一个回文就ok了,2刷自己刷代买练手class Solution {public: bool isok(string s, int start, int end){ while(start <= end){ if(s[start++] != s[end--]) return false; }

2017-02-17 11:53:28 175

原创 130. Surrounded Regions

别人的代码,简单题吧,dfs或者bfs都行,就是比那上面的o(包括和这些o相连的o)之外其他的0都变成x 2刷自己打一次吧class Solution {public: void helper(vector<vector<char>>& board, int i, int j) { queue<pair<int, int>> q; pair<int

2017-02-17 11:51:32 156

原创 129. Sum Root to Leaf Numbers

简单题,递归就ok/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };

2017-02-17 11:50:48 168

原创 128. Longest Consecutive Sequence

有意思的一题,首先,时间需要时on,这个时间想到的只有hashmap,treemap不行,因为tree的操作的ologn,hasdmap是o1,然后遍历一次。如果这个数的左右两边没数,则·dp=1 有数的话,就更新一段联系区间的最左右的端点的dp值,dp值表示包括这个数在内的连续最大长度。所以时间上应该是on,其实我觉得是o3n,不过好像题解就是这个方法。。。。 2刷学习一下别人6巷代码的写法

2017-02-17 11:50:03 271

原创 127. Word Ladder

单向bfs 方法也是想到和写了出来,就是没有用find这个方法导致超时!!!用了iterator 其实就是bfs不断判断是否是那就ok了,数据结构的使用方法还是有点弱!class Solution {public: void addnext(string s, queue<string>& qu, unordered_set<string>& wordList){ wo

2017-02-17 11:49:04 260

原创 125. Valid Palindrome

没啥好说的,求回文串,处理一下string就okclass Solution {public: bool isPalindrome(string s) { if(s.length() == 0) return true;; string ss = ""; for(int i = 0; i < s.length(); ++ i){

2017-02-16 00:45:32 169

原创 124. Binary Tree Maximum Path Sum

这题一开始还以为那个忘记叫什么的算法,其实就是dfs,一开始在考虑的时候,对于每一个点出了考虑左右跟的最大,还多考虑了从其他地方到这个点的最大,其实这一个point是不用考虑的因为在递归的时候一定会经过相应的点(没想到。。。)/** * Definition for a binary tree node. * struct TreeNode { * int val; * Tr

2017-02-16 00:45:01 179

原创 123. Best Time to Buy and Sell Stock III

有趣的一题,一开始是以为用区间dp,dpij表示从i到j的最大值,结果发现有bug,然后通过最后求解想发到方法。 final = max(final, left[i] + right[i]); 其实我们只需要求出从左右两边算起来的最大值,不用把区间中的每一个小区间的最大值都求出来,所有就用了第一题的方法,从左边算一次,再从右边算一次(右边算的优点不一样,需要维护最大的数然后就sum,左边是维护最

2017-02-16 00:44:26 189

原创 122. Best Time to Buy and Sell Stock II

一开始是求2维dp,不行,然后以为是像上一题那样,那么只需要找出每一个买入点和卖出点。其实每一个买入和卖出就是一个连续上升序列,只需要求出每一个上升序列再求和就ok,记得遍历最后一个点的时候也要在求一次,别漏了。class Solution {public: int maxProfit(vector<int>& prices) { int minn, sum;

2017-02-16 00:43:52 177

原创 121. Best Time to Buy and Sell Stock

提议就是又一次买入和卖出,每天价格都不一样,就最大利润,就一次dp,维护最小值就class Solution {public: int maxProfit(vector<int>& prices) { if(prices.size() == 0) return 0; int minn, sum; minn = prices[0];

2017-02-16 00:43:21 154

原创 120. Triangle

Dp,小细节,比较结构要用括号才行如果有其他运算的话,可能优先度不够高class Solution {public: int minimumTotal(vector<vector<int>>& triangle) { int n = triangle.size(); if(n == 0) return 0; for(int i = n - 1;

2017-02-09 04:03:39 176

空空如也

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

TA关注的人

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