自定义博客皮肤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)
  • 收藏
  • 关注

原创 JNI 开发入门 mac + AS

环境准备:Android Stdio JRE/JDKNDK首先打开AS,创建一个空项目,在打开的Mainactivity里面,声明一个本地方法,使用关键字native,如图所示System.loadLibrary("hello");//需要加载的so文件的名称下一步点击make project,可以编译生成classes 文件在android s

2017-01-29 21:33:09 385

原创 LeetCode 486. Predict the Winner

解题思路:DFSclass Solution { int maxScore(vector& nums, int start, int end, vector> &m) { if(start>end) return 0; if(start==end) return nums[start]; if(m[start][end]) return

2017-01-29 14:13:06 924

原创 LeetCode 409. Longest Palindrome

解题思路: 一次AC,统计字符串中每个字符出现的次数,偶数个就直接累加,奇数个减一再求和,最后返回值需要注意,含有奇数的字符时,返回结果为count+1,若只有偶数的字符,直接返回count.class Solution {public: int longestPalindrome(string s) { mapres; for(int i = 0;

2017-01-29 10:49:37 377

原创 LeetCode

解题思路: 使用异或运算class Solution {public: int missingNumber(vector& nums) { int res = nums.size(); for(int i = 0; i < nums.size(); i++){ res ^= i; res ^= nums[

2017-01-28 21:36:41 184

原创 LeetCode 171. Excel Sheet Column Number

解题思路: 找出来规律就行了.class Solution {public: int titleToNumber(string s) { int res = 0; for(int i = 0; i < s.length(); i++){ res = res * 26 + int(s[i] - 'A' + 1);

2017-01-28 19:46:16 241

原创 LeetCode 326. Power of Three

解题思路:第一种想到的是打表,直接把整数范围内的是3的立方的数打出来,比较trick 哈.这是一个纯粹的数学问题,看讨论区,有许多关于取对数的方法,log() 和log10(),其中log是以自然对数e为底的,这两个方式对于243来说,结果是不相同的,原因是以e为底的数产生了误差,因为3和e相差远比3和10相差的小,导致换底之后的结果有误差.class Solution {public:

2017-01-27 12:15:22 306

原创 LeetCode

解题思路:统计出现的字符是否都相同且次数相同,使用map容器,运行时间16msclass Solution {public: bool isAnagram(string s, string t) { if(s == t) return true; if(s.length() != t.length()) return false; ma

2017-01-25 09:44:02 209

原创 LeetCode 237. Delete Node in a Linked List

解题思路:假删除,因为不能访问到节点的前一个指针,所以只能用后一个的去覆盖前一个.class Solution {public: void deleteNode(ListNode* node) { *node = *node->next; }};

2017-01-25 09:20:08 169

原创 LeetCode 100. Same Tree

解题思路:树的递归class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(p == NULL || q == NULL) return p == q; else return p->val == q->val && i

2017-01-25 09:10:36 158

原创 LeetCode 20. Valid Parentheses

解题思路: 首先想到栈的操作,先入后出,用一个vector容器来模拟栈的操作.class Solution {public: bool isValid(string s) { vector res; map m{ {']','['},{')','('},{'}','{'} }; for(int i = 0; i < s.

2017-01-25 00:59:34 141

原创 LeetCode 290. Word Patter

解题思路:先将字符串使用string流的形式分成一个个字符串,之后,将pattern和str 分别存到一个map容器中,并比较出现的次数是否相等.class Solution {public: bool wordPattern(string pattern, string str) { stringstream ss(str); string

2017-01-24 23:28:18 194

原创 LeetCode 111. Minimum Depth of Binary Tree

解题思路:DFS遍历整棵树,取最小深度class Solution {public: int minDepth(TreeNode* root) { if(root == NULL) return 0; if(root->left == NULL) return 1+minDepth(root->right);

2017-01-24 15:15:00 220

原创 LeetCode 112. Path Sum

解题思路:递归即可class Solution {public: bool hasPathSum(TreeNode* root, int sum) { if(root == NULL) return false; if(root->val == sum && root->left == NULL && root->right == NU

2017-01-24 10:41:16 230

原创 C++string常用的函数

s.substr(pos, n)    截取s中从pos开始(包括0)的n个字符的子串,并返回s.substr(pos)        截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回s.replace(pos, n, s1)    用s1替换s中从pos开始(包括0)的n个字符的子串s.find(s1)         查找s中第一次出现s1的位置,并返回(

2017-01-23 20:13:12 244

原创 LeetCode 231. Power of Two

解题思路: 这题很简单,直接用2除即可,注意n = 0 的情况class Solution {public: bool isPowerOfTwo(int n) { while(n%2 == 0 && n != 0){ n /= 2; } return n==1; }};

2017-01-23 16:43:03 189

原创 LeetCode 263. Ugly Number

解题思路:类似质因数分解,但是因数只能为2,3,5,所以用m去整除数字不能超过6,之前写了一个mclass Solution {public: bool isUgly(int num) { if(num == 1) return true; if(num <= 0) return false;

2017-01-23 16:33:21 182

原创 LeetCode Integer to Roman

解题思路:首先要知道罗马数字是怎么去表示整数的,这里在维基百科上可以搜到,之后就直接枚举case就行了.class Solution {public: string intToRoman(int num) { string res; int flag[4]; flag[3] = num/1000; num

2017-01-23 14:30:43 172

原创 LeetCode 423. Reconstruct Original Digits from English

解题思路:主要是观察0-9这10 个英文字母的出现规律,先找到每个字符唯一标识的数字,然后找其他出现的字符代表的数字减去唯一标识的字符出现的数字.class Solution {public: string originalDigits(string s) { vector low_letter(128,0); vector digit(10,0);

2017-01-23 13:36:44 205

原创 LeetCode 202. Happy Number

解题思路:因为不知道如何去终止循环,所以看了一下讨论区的方法,一种是根据规律来终止循环,在维基百科上给出了一个"开心数字"的序列,1,7,...所以当发现n的取值范围 min:-2147483648 max:2147483647,而根据"开心数字"的规则,最大的应该是每位都是9,这样最大才810,假设10位全是9,其实并没有那么大,所以可以开一个1000的数组,用来记录这个数组是否出现过,如果出现

2017-01-22 23:38:59 210

原创 LeetCode 387. First Unique Character in a String

解题思路:先用一个map存放string里面每个字符出现的次数,然后遍历string每个字符,如果字符出现的次数为1就返回index,否则就返回-1class Solution {public: int firstUniqChar(string s) { map s_m; for(int i = 0; i < s.length(); i++){

2017-01-22 21:11:25 158

原创 LeetCode 238. Product of Array Except Self

解题思路:l两个循环,第一个从0到i-1,累乘,第二个从n到i+1,累乘.class Solution {public: vector productExceptSelf(vector& nums) { int N = nums.size(); vector res(N,1); for(int i=0; i<N; i++){ if (i

2017-01-22 08:47:34 162

原创 LeetCode 347. Top K Frequent Elements

解题思路:这一题和leetcode451题的思路是类似的,只不过是返回前topK出现最多的频率,所以自然而然地相当先将vector写进map中,然后根据value值排序,注意题目要求的时间复杂度,使用全排sort虽然也是采用的快排思想,有时也会达到O(N2),所以使用部分排序,堆排序,C++ stl里面有partial_sort,仅对前K个排序.class Solution {public:

2017-01-22 08:37:12 208

原创 LeetCode 167. Two Sum II - Input array is sorted

解题思路: 一开始暴力,结果超时,然后利用快排的思想,两个index,一个从头部开始,另一个从尾部开始,每次若是相加和小于target,那么小的index++;否则,大的index++class Solution {public: vector twoSum(vector& numbers, int target) { vector res; int

2017-01-21 22:42:03 162

原创 LeetCode 462. Minimum Moves to Equal Array Elements II

解题思路:这题相对比较简单,第一次提交就AC了.首先先将vector排序,然后求中位数,每一个数与中位数的差就是需要移动的move,遍历一次求和即可.代码也很短class Solution {public: int minMoves2(vector& nums) { sort(nums.begin(),nums.end()); int count = 0;

2017-01-21 21:41:09 376

原创 LeetCode 451. Sort Characters By Frequency

解题思路:使用map 将string里面的每个字符insert进去,之后需要对map的value进行一个降序,考虑到无法直接对map的值进行降序排列,所以把map 放到vector容器中,这样可以对vector直接排序,最后字符串转string,return 即可.class Solution {public: string frequencySort(string s) {

2017-01-21 15:38:40 268

原创 LeetCode 383. Ransom Note

解题思路:这题主要考查字符串的查找,对于这个问题,倘若是一个字符串中必须连续的包含一个字符串,那么直接可以使用c++ string类中的str1.find(str2)这个方法.但是,题目的意思是稍微比这个难一些,是要求一个字符串的所有字符是另一个的子集,考虑使用map,将两个string 重新写入map中,再进行比较,即可.class Solution {public: bool can

2017-01-21 03:00:17 213

原创 LeetCode 455. Assign Cookies

解题思路:先排序,然后从大到小依次遍历比较class Solution {public: int findContentChildren(vector& g, vector& s) { sort(g.begin(),g.end()); sort(s.begin(),s.end()); int i=g.size()-1, j=s.size

2017-01-21 02:13:05 236

原创 LeetCode 413. Arithmetic Slices

解题思路:以三个为一组,每次计数加1,如果四个就加2,依次类推,最后全部求和class Solution {public: int numberOfArithmeticSlices(vector& A) { int res = 0; if (A.size() <= 2) return 0; else{

2017-01-21 00:40:08 234

原创 LeetCode 476. Number Complement

解题思路:这一题主要是考查十进制到二进制再按位取反输出十进制,所以按照题目要求写两个函数,一个是十进制转二进制,另一个是二进制转十进制,使用一个vector向量保存中间值class Solution {public: int findComplement(int num) { vector temp; temp = int_to_byte(num);

2017-01-19 18:32:48 232

原创 Leetcode 419 Battleships in a Board

解题思路:题目大意是战舰只能一行或者一列这样的排列,并且战舰必须隔开,不能有相交.所以只要遍历是'X'的点,并且'X'的上方和左侧不能是'X',这样就是一个战舰.class Solution {public: bool is_X(int i,int j,vector >& board){ if (board[i][j] != 'X') re

2017-01-19 18:15:35 203

原创 Android Studio 的NDK 有关gradel的问题

在用AS  NDK编写库的时候,难免会出现gradle各种问题,今天小编针对自己移植别人的ndk出现gradle project sync failed to open zip fle的问题,给出解决方案.别人的ndk里面的gradle设置和你的肯定不同,主要在以下几个文件之中,你只需要将你移植他人的ndk这几个gradle的配置文件改成你的AS 里面一个空项目的默认配置就行,注意出现Ex

2017-01-15 02:10:23 395

原创 shell编程之命令行参数判断

#!/bin/bashif [ "$#" -ne 2 ];then echo "the num is not equal to 2" exit 1fiif [ "$1" == "$2" ]then echo "The two files can't be the same." echo "No copy." >&2 exit 2fiif test

2017-01-13 16:26:27 1753

转载 Shell脚本中判断输入参数个数的方法

$#代表了命令行的参数数量shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真-c 当file存在并且是字符文件时返回真-d 当pathname存在并且是一个目录时返回真-e 当pathname指定的文件或目录存在时返回真-f 当file存在并且是正规文件时返回真-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真-h 当file存在并且是符

2017-01-13 14:01:57 7226

转载 Linux shell 的 test 命令用法详解

基本格式:test expressionexpression为test命令构造的表达式。这里expression是test命令可以理解的任何有效表达式,该简化格式将是读者可能会踫见的最常用格式返回值:test命令或者返回0(真) 或者返回1(假).test可理解的表达式类型分为四类:    表达式判断    字符串比较    数字比较    文件比较1)判断表达式if test  (表达式

2017-01-13 13:55:37 331

原创 caffe 训练之学习率

今天,自己在用caffe训练alfw的pose数据集时,使用欧几里得loss回归,发现测试的每张图片经过训练的网络,得到的回归值几乎全都一样。刚开始以为数据错了,于是在caffe的data_layer层中将读入的值打印出来,发现没问题;继续将欧几里得loss层的两个bottom输入的值也打印出来,发现在经过几千次迭代后,验证集的预测值几乎都一样,一点点查原因。网络结构、数据都没问题,但是这个现象说

2017-01-04 20:44:12 3066 2

空空如也

空空如也

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

TA关注的人

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