自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Michael_yan的专栏

一个编程爱好者之随笔

  • 博客(74)
  • 收藏
  • 关注

原创 [算法] Longest Common Sequence

好久没有用C写给代码,用经典的LCS练习一下C语言中的基本操作。最长公共子序列-LCS 想想,这算法虽然经典,好像没啥讲的,思路都在代码里了直接上代码#include "stdio.h"#include "stdlib.h"void LCS0(char* strA, char* strB){ int lenA = strlen(strA); int lenB =...

2018-06-03 19:37:16 851

原创 [RxJava] 并发之flatMap() VS parallel()

想把之前写的多线程下载文件的库用RxJava重新实现一下,于是看了看在RxJava如何实现并发。首先说一点,RxJava里的subscribeOn以及observeOn这两个Operator仅能用来实现线程切换,其整个数据流及操作还是串行的,没有任何并发的意思。实现办法也就是标题里面的那两个Operator:flatMap()flatMap操作符做了两件事: - map:对每个来...

2018-05-27 19:05:19 2724

原创 [lintCode] 178. Graph Valid Tree

描述https://www.lintcode.com/problem/graph-valid-tree/description Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), write a function to check whethe...

2018-05-13 16:01:35 374

原创 [lintcode] 814. Shortest Path in Undirected Graph

Description Give an undirected graph, in which each edge’s length is 1, and give two nodes from the graph. We need to find the length of the shortest path between the given two nodes.Example Given...

2018-05-13 14:24:03 390

原创 [lintcode] 752. Rogue Knight Sven

时隔两年重回LintCode,多了好多题啊,赶紧刷一道找找感觉【题目描述】 https://www.lintcode.com/problem/rogue-knight-sven/descriptionIn material plane “reality”, there are n + 1 planets, namely planet 0, planet 1, …, planet n. E...

2018-05-12 19:52:19 418

原创 [Android] 主题皮肤切换

看了几篇主题切换的Blog,给其算法稍作总结 1. 添加Flag,给有主题切换需求的View做标记,如通过自定义属性。如果所有的View都有该需求,此步骤可省略。 2. 通过添加Hook来获得有主题切换需要的View,并管理。可通过LayoutInflater.Factory实现Hook。 3. 当主题切换时,获取相应主题的资源并动态设置View的相应属性。Note: 谨防内存泄漏...

2018-04-30 19:27:48 267

原创 [Android] ListView setEmptyView

首先setEmptyView是AdapterView的方法。 从其源码可得setEmptyView方法仅仅是对其自身及emptyView的View.Visibility进行操作,并没有进行将emptyView添加为某个ViewGroup的childView操作。因此其生效的前提为:当AdapterView需要显示emptyView时,emptyView必须已经被添加到当前界面所属Decor...

2018-04-21 21:24:37 185

转载 [Kotlin] Kotlin标准函数:run、with、let、also和apply

一图胜千言参考:http://liangfei.me/2018/03/31/kotlin-mastering-standard-functions/

2018-04-18 22:39:56 216

原创 [Android] 切换语言后避免Activity重启方法

今天上网看到这问题,便测试了下,发现下面的方法无效android:configChanges="locale|layoutDirection" 于是乎看文档,发现有个keyboard很可疑,一测试就是它了。因此切换语言后避免Activity重启的解决办法就是下面:android:configChanges="locale|layoutDirection|keyboard" ...

2018-04-16 18:52:57 11522 5

转载 [Java] Overriding and Hiding Methods

If a subclass defines a static method with the same signature as a static method in the superclass, then the method in the subclass hides the one in the superclass.The distinction between hiding a s...

2018-03-29 23:05:44 178

原创 [Java] override VS overload

override、overload为三种Java多态实现方式之二(另有接口实现)override(重写,覆盖)override基于类与类之间的继承关系,子类修改父类已有相同方法签名的方法的实现。overload(重载)overload指在类继承体系中的方法名相同,其方法签名相异的现象。Note: - override和overload的存在均基于在当前类中存在另一可访...

2018-03-29 22:53:39 145

原创 [Android] View setLayoutParams ClassCastException

在几个月之前就遇到了因往View.setLayoutParams方法中传了错误类型的LayoutParams所导致的ClassCastException报错的原因是显而易见的,但是当时在写Demo验证时遇到有时不会报错。。。当时就迷茫了。今天又处理了一个需要动态布局的问题,故意给View.setLayoutParams方法中传了个ViewGroup.LayoutParams,又没报错。。。...

2018-03-28 23:07:48 346

原创 Android Studio 离线开发(offline)

设置配置依赖项参考文献设置 可以看出其中动了两个地方, 1. 使用本地gradle,下载gradle解压到相应目录即可。 2. 选中 “offline work”配置依赖项要使用AS的离线开发模式的前提是备好gradle编译需要的各种依赖项,如build.gradle文件中android { compileSdkVersion 24 buildToolsVersion "2

2017-10-22 10:27:48 29567

原创 Android Studio初体验

昨晚在新电脑上装了AS,在初体验过程中遇到了不少问题,在此总结一下,以备后面需要。代理SDK的各种版本问题资源找不到如ThemeAppCompatLight代理使用AS不用代理基本是不可能的,这有两种解决办法: 1. 翻墙 2. 找没被墙的Android镜像源 在此暂时采用第2种方法,在网上找了一圈,大多数镜像均已失效。。。最终还是找到一个郑州大学的镜像源,如下图。 由此想到,应该不少

2017-10-22 09:54:07 309

转载 解析解与数值解

在解组件特性相关的方程式时,大多数的时候都要去解偏微分或积分式,才能求得其正确的解。依照求解方法的不同,可以分成以下两类:解析解和数值解。解析解(analytical solution)就是一些严格的公式,给出任意的自变量就可以求出其因变量,也就是问题的解, 他人可以利用这些公式计算各自的问题. 所谓的解析解是一种包含分式、三角函数、指数、对数甚至无限级数等基本函数的解的形式。用来求得解析解的方法称

2016-12-03 10:44:40 1398

原创 java中Arrays.parallelSort和Arrays.sort性能对比

Arrays.parallelSortjava8新增的并行排序算法,基于fork/join框架。Arrays.sort为串行排序现在对这两个算法针对不同的数据规模进行性能对比,先上结果后附代码//先让数据规模按2的指数幂递增limit:2 parallelSort: 0ms serialSort: 0mslimit:4 parallelSort: 0ms serialSort: 0m

2016-11-24 11:43:29 14425 2

转载 泰勒(Taylor)级数和梯度下降(gradient descend)的关系

So taylor series is used to approximate the value of the function at X+h when we know the value of the function at X.f(x+h) = f(x)+f'(x)*h+f''(x)*h*h/2!+f'''(x)*h*h*h/3!+...........Gradient descent is

2016-11-18 16:18:42 4297 7

原创 有趣的数字

问题描述   我们把一个数称为有趣的,当且仅当:   1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。   2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。   3. 最高位数字不为0。   因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。   请计算恰好有n位的有趣的数的个数。由于答案可能非

2016-11-12 15:22:56 548

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-11-12 11:33:47 203

转载 Python运算符重载

http://blog.csdn.net/adupt/article/details/4551910在Python语言中提供了类似于C++的运算符重在功能:一下为Python运算符重在调用的方法如下:Method        Overloads         Call for__init__        构造函数         X=Class()__del_

2016-11-07 21:31:51 290

原创 python的万物皆对象以及int深入

在python语言中,万物皆对象,非常pure。不像java还有primitive data types这些非对象类型存在。首先介绍一下is id ==这三个东西:1、id(object) -> integer    Return the identity of an object.  This is guaranteed to be unique among simultan

2016-11-07 21:28:56 949

原创 BigInteger详解

BigInteger:Immutable arbitrary-precision integers. All operations behave as if BigIntegers were represented in two's-complement notation (like Java's primitive integer types). BigInteger provides an

2016-09-13 08:39:43 2736

原创 Timer和TimerTask总结

Timer:A facility for threads to schedule tasks for future execution in a background thread. Tasks may be scheduled for one-time execution, or for repeated execution at regular intervals.(使用线程来实现定时执行

2016-09-13 08:07:39 294

原创 java-finally详解

今晚京东笔试,各种finally,有点迷糊,所以在这里总结一下。1、如果在try块或者catch块有System.exit(0),直接退出,不执行finally代码块public class Main { void fun(){ int c=0; try{ System.out.println("try "); System.exit(0); }catch(E

2016-09-05 23:39:06 383

原创 最长上升子序列

给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。您在真实的面试中是否遇到过这个题? Yes说明最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。https://en.wikipedia.org/wiki/Longest_increasi

2016-07-04 14:06:01 286

原创 编辑距离

给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你总共三种操作方法:插入一个字符删除一个字符替换一个字符您在真实的面试中是否遇到过这个题? Yes样例给出 work1="mart" 和 work2="karma"返回 3分析:动态规划:用dp(i, j)表示word1的字串(

2016-07-04 11:32:01 236

原创 k数和

给定n个不同的正整数,整数k(k 在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?您在真实的面试中是否遇到过这个题? Yes样例给出[1,2,3,4],k=2, target=5,[1,4] and [2,3]是2个符合要求的方案分析:动态规划dp(i , j , k)表示前i个数

2016-07-04 11:19:19 2201 2

原创 不同的二叉查找树 II

给出n,生成所有由1...n为节点组成的不同的二叉查找树您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,生成所有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2

2016-07-04 10:41:55 1289

原创 不同的二叉查找树

给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1

2016-07-04 00:09:23 227

原创 最大正方形

在一个二维01矩阵中找到全为1的最大正方形您在真实的面试中是否遇到过这个题? Yes样例1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0返回 4思路:因为是求正方形,所以只要求正方形的边长就可以(这样比用面积表示更方便)。动态规划:转移方程:如果matrix[i][j]=0,dp[i][

2016-07-03 23:37:30 640

原创 List和Set集合中iterator的fail-fast特性之区别

刚才看到一个问题,关于List和Set集合中iterator的fail-fast特性先上代码:List集合:public class Test { public static void main(String[] args){ List L = new LinkedList(); L.add("aaa"); L.add("bbb"); L.add("ccc");

2016-05-18 01:23:43 760

原创 排列序号

排列序号一给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。您在真实的面试中是否遇到过这个题? Yes样例例如,排列[1,2,4]是第1个排列。思路:1、由n个不重复数字刚才的排列有 n! 种;2、对所给排列从右到左(即从低位到高位)进行分析,下标i从0开始, 第i位的数字和其右边的某一个

2016-05-15 18:22:39 1986

原创 java中的移位运算符

Java中移位操作符有三个:>、>>>,分别叫做左移位操作符、有符号右移位操作符、无符号右移操作符。左位移操作符():无论是有符号数还是无符号数,都低位补0。有符号右移位操作符(>>):用符号扩展,为正高位补0,为负高位补1。无符号右移操作符(>>>):无论是有符号数还是无符号数,都高位补0,称为零扩展。注意移位预处理char、byte、

2016-05-13 21:25:29 243

原创 更新二进制位

给出两个32位的整数N和M,以及两个二进制位的位置i和j。写一个方法来使得N中的第i到j位等于M(M会是N中从第i为开始到第j位的子串)样例给出N = (10000000000)2,M = (10101)2, i = 2, j = 6返回 N = (10001010100)2解题:首先将N的第i位到第j位清0(注意位数从0开始),然后将M左移i位,将M和N相或即可得

2016-05-13 21:12:25 400

原创 加油站

在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。样例现在有4个加油站,汽油量gas[i]=[1, 1, 3, 1

2016-05-08 20:17:51 352

原创 分割回文串

给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的回文串分割方案。样例给出 s = "aab",返回[ ["aa", "b"], ["a", "a", "b"]]解题思路:DFS用一个数组记录分割的位置,每一次都是寻找下一个可以分割的位置public class Solution { /**

2016-05-08 19:22:35 1044

原创 二叉树的序列化和反序列化

设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。如何反序列化或序列化二叉树是没有限制的,你只需要确保可以将二叉树序列化为一个字符串,并且可以将字符串反序列化为原来的树结构。样例给出一个测试数据样例, 二叉树{3,9,20,#,#,15,7},表示如下的树结构: 3 / \9 20

2016-05-07 18:28:08 515

原创 简化路径

给定一个文档(Unix-style)的完全路径,请进行路径简化。样例"/home/", => "/home""/a/./b/../../c/", => "/c"解题思路:可以把目录看成一棵树,则一条路径即为从树根到每个子节点的路径,一层层的走下去。如果当前层为 . 或者 空,则可以忽略如果当前层为 ..,则要回退到上一层目录代码:public

2016-05-07 12:54:32 2840

原创 连续子数组求和

给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果两个相同的答案,请返回其中任意一个)样例给定 [-3, 1, 3, -3, 4], 返回[1,4].思路:如果数组全为负数,则选择其最大的即可。否则偏历一次,记录以下标i结尾的最大和子数组,如果当前子数组的和小于0,则更新子数组头(即 tb

2016-05-02 22:38:27 1007

原创 打劫房屋 III

在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。算一算,如果今晚去打劫,你最多可以得到多少钱,当然在不触动报警装置的

2016-04-30 14:21:07 1615 1

空空如也

空空如也

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

TA关注的人

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