- 博客(92)
- 资源 (8)
- 收藏
- 关注
原创 【FFmpeg系列】FFmpeg解码视频文件为YUV
音视频解码流程音视频解码流程如下如所示:FFmpeg视频解码流程主要步骤解析打开并读取输入文件 int ret = 0; pFormatCtx = avformat_alloc_context(); if (avformat_open_input(&pFormatCtx, inputPath, nullptr, nullptr) < 0) {...
2019-11-29 23:47:47
855
2
原创 Android LayoutInflater原理解析
最近在看开源项目的时候,发现很多地方用到了inflate这个方法,于是乎就想总结一下Android中加载xml布局的方法,然后就有了这篇博客。本博客参考了网上许多大神的博客,会在博客结尾列出,感谢。一、得到LayoutInflater想要调用inflate这个方法,首先需要得到LayoutInflater对象。先来看看官方给出的解释:文档说,这个类是用来
2017-03-13 13:07:08
572
原创 判断链表是否为回文串以及关于回文串问题的讨论
最近在看程序员面试金典,在链表部分看到有一题问如何判断链表是否是回文串,然后想到白书中也有对最长回文子串的讨论,故想做一点总结。一、判断链表是否为回文串链表的数据结构是这样子滴:public class Node { public int val; public Node next; public Node(int val) {
2017-03-13 12:54:32
966
原创 Ubuntu内核编译和CPU Hot-Plug特性配置全过程及遇到问题记录
最近编译Palacios需要linux的内核支持CPU Hot-Plug(内存热插拔)特性,无奈我机器上安装的Ubuntu10.04系统默认不支持内存热插拔特性,所以需要修改配置文件并重新编译linux内核,然后就开始了漫长的linux内核编译过程,幸好有个大神帮我,然后参考了网上很多朋友的博客,才让我快速结束了这个痛苦的经历。记于此,备忘、分享。一、查看自己的机器是否支持CPU Ho
2017-03-13 12:42:51
1970
原创 对Java中String类的一点点理解
最近在复习Java的时候遇到关于String类型的一些疑惑,查阅了一些资料后算是有一点点心得,记于此。一、看如下代码:String a = "programming";String b = new String("programming");String c = "program" + "ming";System.out.println(a == b);System.
2017-03-13 12:26:49
1252
原创 将Excel表格或者CSV文件导入到Mysql中
最近老师让我把小范同学的数据导入到OpenStack平台虚拟机的Mysql中,他给我的数据格式是Excel和CSV。因为Excel文件可以导出成CSV格式的文件,所以归根结底还是如何将CSV文件导入到Mysql中。在导入的过程中遇到了很多问题,而且发现网上的文档都不怎么靠谱,弄了好久最后算是导入成功。其中最头痛的问题就是编码问题,由于我的linux是英文版的,所以中文数据在上面显示乱码,需要安装中
2017-03-13 12:19:15
13378
原创 各种排序算法总结
暂做笔记,以后再详细整理。一、插入排序1、直接插入排序public class InsertSort { public static void insertSort(int[] nums) { int size = nums.length; for (int i = 1; i < size; i++) { if
2017-03-13 12:12:13
303
原创 LeetCodeP134 Gas Station
There are N gas stations along a circular route, where the amount of gas at station i is gas[i].You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from station i to
2017-03-13 12:06:07
327
原创 LeetCodeP331 Verify Preorder Serialization of a Binary Tree
One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node’s value. If it is a null node, we record using a sentinel value such as #.
2017-03-13 11:56:22
271
原创 LeetCode P275 H-Index II
Follow up for H-Index: What if the citations array is sorted in ascending order? Could you optimize your algorithm?Hint:Expected runtime complexity is in O(log n) and the input is sorted.
2017-03-13 11:52:19
280
原创 二叉树三种遍历递归及非递归实现
二叉树的三种遍历方式包括:前序遍历中序遍历后序遍历三种遍历的递归方法都非常好实现,而且简单易懂。非递归实现也是通过使用栈来模拟遍历的过程。顺便提一句,能用递归做的,基本都能用栈来实现。前序遍历和中序遍历的非递归写法相对比较简单,只需要模拟遍历过程即可。后序遍历非递归写法比较难,需要借助一个辅助指针来记录右子树是否访问过,以防止重复访问陷入死循环。下面分别给出三种遍历方法的递归和非递
2017-03-13 11:48:34
600
原创 腾讯2016研发工程师编程题(两题)
第一题在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。给定一个整数n,请返回n位的格雷码,顺序为从0开始。测试样例:1返回:["0","1"]题解:该题考察格雷码生成规则。具体思想参考我的另一篇博文。本题注意以下几点:1、要求返回的是字符
2017-03-13 11:41:25
435
原创 LeetCodeP89 Gray Code
The gray code is a binary numeral system where two successive values differ in only one bit.Given a non-negative integer n representing the total number of bits in the code, print the sequence of
2017-03-13 11:38:58
334
原创 LeetCodeP22 Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:"((()))", "(()())", "(())()", "()(())", "()
2017-03-13 11:37:29
290
原创 LeetCode P318 Maximum Product of Word Lengths
Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case
2017-03-13 11:36:06
354
原创 Hadoop运行步骤
在保证正确安装和配置的前提下,进行一下几步删除master和slave上Hadoop目录下的tmp文件夹格式化namenodehdfs namenode -format启动hadoopstart-dfs.shstart-yarn.shmr-jobhistory-daemon.sh start historyserver
2017-03-13 11:34:23
337
转载 对Java回调函数的理解
最近在看Java的时候看到了回调函数。只看书写的没有弄明白,于是乎去网上搜了搜相关内容。 首先先看一个比较生动的例子: 某天,我打电话向你请教问题,当然是个难题,^_^,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例
2017-03-13 11:13:39
1975
2
原创 Android实现两次按下返回按钮后退出应用程序
最近做项目突然想到要加上这个功能,然后就想有什么实现方法。第一种:首先想到的是使用一个布尔型标志flag1、如果flag是true,则关闭。2、如果flag是false就修改为true并提示再按一次,然后开个线程延迟两秒后修改flag为false。首先在MainActivity中添加一个内部类:class closeApp implements Runnable{ @Override
2017-03-13 10:55:13
457
原创 LeetCodeP079 Word Search
Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally or vertically
2015-12-30 15:30:17
521
原创 LeetCode P144 Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes’ values.For example:Given binary tree {1,#,2,3}, 1 \ 2 / 3return [1,2,3].Note: Recursive solution is
2015-12-09 19:51:27
352
原创 Android ViewPager实现无限循环滑动
最近做项目需要实现一个类似于淘宝、京东首页那种滑动效果的广告。于是想到使用ViewPager,但是ViewPager本身是不支持无限左右滑动的,所以需要自己实现。目前实现无限滑动的思路大体有两个:1、将viewpager上限设置成一个很大的数,第一个页面设置到中间。然后滑动的时候,用当前的序号与viewpager页面数取余得到目标页面的序号,然后显示出来。理论上一个人不会无聊到一直左滑
2015-12-09 19:29:12
989
原创 Android广播动态注册重复注册问题
最近在学习android广播的内容,按照书上的例子写了个小程序实现强制下线的功能,大体运行流程为:登录输入账号密码后进入主界面,在主界面点击按钮弹出对话框提示被强制下线。点击确定后显示登录页面。结果第一次被踢还好好的,再登录被踢以后就会出现两次提示的对话框。第三次被踢就会出现三次…..我在程序中使用的是动态注册,结果我换成静态注册就没问题了。想了想貌似问题就在这里,应该是重复注册了广播接收
2015-12-05 16:12:57
17139
原创 将WordPress博客从Apache移植到Nginx后的若干问题总结
近期,我把我的小站从万网轻云服务器移植到了ECS上。下面对出现的一系列问题进行总结。问题1、如何移植到ECS上。原来在轻云服务器上的时候,所有的LAMP环境都是准备好的,直接上传网站就可以了。但是ECS只是一个光秃秃的服务器,所以想要跑起来原来的网站就必须先搭建PHP所需要的环境,考虑到以后可能会有更大的访问量和计算量(- -! 是不是想的有点多),所以选择了LNMP。(真是不作就
2015-12-05 16:10:38
4211
原创 关于小米手机使用广播无法接受短信的问题
最近学习android时在学到手机应用使用广播监听短信并读取短信内容时,出现了无法监听到短信的问题。我使用的测试机是小米2,最初以为是广播注册的问题,可是检查代码并改成静态注册也无济于事,于是想到可能是手机问题。于是我换同学的华为手机试了试,结果是OK的。这样就能确定是小米手机的问题了。去网上搜了下,最终确定是因为小米手机在短信设置中有一个系统短信优先选项在捣鬼。关掉后就可
2015-12-05 16:08:49
2633
1
转载 【转】ViewHoder的一种简易写法
在网上看到的,果断转载过来记录一下。ViewHolder这么写(只提供一个静态方法,其实可以加一个私有构造函数防止外部实例化)public class ViewHolder { // I added a generic return type to reduce the casting noise in client code @SuppressWarnings("un
2015-12-05 16:06:45
424
原创 JAVA读取文件中存在BOM的问题
最近在做项目的时候,需要从文件中读取中文字符然后处理。结果,当处理到文件开头的中文字符串的时候总是报错。调试的时候发现输出开头的字符串明明是一个中文字符,但是输出长度的时候却显示长度为2。于是将开头的字符串的两个字符分别输出,发现第一个字符是编码为65279的字符,输出以后感觉是没有长度的字符。第二个字符才是正确的目标字符。于是去网上查了下发现这个神秘的字符叫BOM。一下摘自百度百科:
2015-12-05 16:03:42
2184
原创 LeetCode P136 Single Number及异或知识
Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using ext
2015-12-05 16:02:26
793
原创 LeetCode P260 Single Number III
Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.For example:Given
2015-12-05 16:01:00
383
原创 LeetCode P137 Single Number II
Given an array of integers, every element appears three times except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without usi
2015-12-05 15:59:44
385
转载 Java数组不能通过toString方法转为字符串
Java里,所有的类,不管是Java库里面的类,或者是你自己创建的类,全部是从object这个类继承的。object里有一个方法就是toString(),那么所有的类创建的时候,都有一个toString的方法。这个方法是干什么的呢?首先我们得了解,Java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。那么你想把一个创建好的对象拿来输出怎么办?例
2015-06-01 09:41:03
580
转载 MD5加密后的SQL 注入
转自:http://www.joychou.org/index.php/web/SQL-injection-with-raw-MD5-hashes.html?utm_source=tuicool今天看到 $sql = "SELECT * FROM admin WHERE pass = '".md5($password,true)."'"; 这样一个sql,其实可以注入。思路比较
2015-05-19 16:17:54
13194
原创 如何在图片中附加rar文件
第一步:将图片和要附加的压缩文件放在同一目录下第二步:新建一个文本文档,在里面添加一下内容:copy /b (原图片名).jpg + (压缩文件名).rar (附加后的图片名).jpg第三步:将文本文档后缀名改为 .bat 点击运行。
2015-05-12 11:29:29
2116
原创 IDF实验室WriteUp
第一题 被改错的密码题目给出一个类似于MD5码的字符串,cca9cc444e64c8116a30la00559c042b4。熟悉MD5的童鞋应该很容易就能看出其中的猫腻,中间有一个怪异的I。再数一下字串的长度是33,刚好比标准MD5的长度多一。去掉I以后将MD5转化为明文。得解。第二题 啥?题目只给出一个图片,下载之。用WinHex打开,搜索“ctf”发现 得解。
2015-05-12 11:09:09
7548
原创 JAVA读取EXCEL文件
JAVA读取EXCEL主要有以下几种方法:1、JDBC-ODBC EXCEL Driver2、jxl.jar3、jcom.jar4、poi本文主要介绍jxl.jar方法。jxl.jar文件下载地址:http://www.andykhan.com/jexcelapi/download.html下载压缩包,压缩包中包含了jxl.jar文件和源代码。只需要把jxl.jar文件
2015-05-06 16:32:59
447
原创 冒泡排序总结
冒泡排序冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。算法实现: for
2015-04-27 17:18:07
755
原创 JAVA List 对象赋值
JAVA List对象如果直接使用“=”进行赋值,比如 如下代码: Listlist1 = new ArrayList(); Listlist2 = new ArrayList(); list2 = list1; if(list1 == list2){ System.out.println("ok"); } else { System.out.println(
2015-04-24 13:56:37
17671
1
原创 ROT-13
ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码。它是一种在网路论坛用作隐藏八卦、妙句、谜题解答以及某些脏话的工具,目的是逃过版主或管理员的匆匆一瞥。ROT13被描述成“杂志字谜上下颠倒解答的Usenet对等体”。(Usenet equivalent of a magazine printing the answer to
2015-04-17 15:32:40
2863
转载 jother编码
本文总结自乌云http://drops.wooyun.org/web/4410,本文为笔记,如有不懂欢迎讨论或者移步原作者大作处。jother编码特点:1、简单,不需要太多算法的知识。2、是对javascript有了较深的了解后的产物。学习之前的准备:1、javascript匿名函数相关知识2、javascript相关函数3、javascript变量类型
2015-04-16 10:04:00
9524
2
原创 古老的邮件编码
MR,O)^KNYU>;*Q[*[P_?#Q+"AHZS6Q\G,LKNYNZ.LR;;2LK*[N^&CK+/VN/;,MXK:\TJJ]RKZAQ-36K:&CH:,*M/.XQ;3PL+B^S+1^;#)=V-T9GMU=75U*=65N8V]D95]??0``解答:这是uuencode编码。uuencode这个名字是衍生自"Unix-to-Uni
2015-04-15 17:07:09
2311
原创 c/c++ strstr()函数实现
函数名称:strstr()函数头文件:string.h函数原型:char *strstr(const char*source,const char*obj);函数功能:在字符串source中查找字符串obj,若找到,返回找到位置处的指针,若找不到,返回NULL。实现过程:char *strstr(const char*source,const char*obj)
2015-04-08 16:49:57
2779
dom4j jdom XML dom4j JavaXML API
2015-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人