- 博客(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
909
原创 [RxJava] 并发之flatMap() VS parallel()
想把之前写的多线程下载文件的库用RxJava重新实现一下,于是看了看在RxJava如何实现并发。首先说一点,RxJava里的subscribeOn以及observeOn这两个Operator仅能用来实现线程切换,其整个数据流及操作还是串行的,没有任何并发的意思。实现办法也就是标题里面的那两个Operator:flatMap()flatMap操作符做了两件事: - map:对每个来...
2018-05-27 19:05:19
2800
原创 [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
417
原创 [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
456
原创 [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
460
原创 [Android] 主题皮肤切换
看了几篇主题切换的Blog,给其算法稍作总结 1. 添加Flag,给有主题切换需求的View做标记,如通过自定义属性。如果所有的View都有该需求,此步骤可省略。 2. 通过添加Hook来获得有主题切换需要的View,并管理。可通过LayoutInflater.Factory实现Hook。 3. 当主题切换时,获取相应主题的资源并动态设置View的相应属性。Note: 谨防内存泄漏...
2018-04-30 19:27:48
304
原创 [Android] ListView setEmptyView
首先setEmptyView是AdapterView的方法。 从其源码可得setEmptyView方法仅仅是对其自身及emptyView的View.Visibility进行操作,并没有进行将emptyView添加为某个ViewGroup的childView操作。因此其生效的前提为:当AdapterView需要显示emptyView时,emptyView必须已经被添加到当前界面所属Decor...
2018-04-21 21:24:37
243
转载 [Kotlin] Kotlin标准函数:run、with、let、also和apply
一图胜千言参考:http://liangfei.me/2018/03/31/kotlin-mastering-standard-functions/
2018-04-18 22:39:56
253
原创 [Android] 切换语言后避免Activity重启方法
今天上网看到这问题,便测试了下,发现下面的方法无效android:configChanges="locale|layoutDirection" 于是乎看文档,发现有个keyboard很可疑,一测试就是它了。因此切换语言后避免Activity重启的解决办法就是下面:android:configChanges="locale|layoutDirection|keyboard" ...
2018-04-16 18:52:57
11966
2
转载 [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
214
原创 [Java] override VS overload
override、overload为三种Java多态实现方式之二(另有接口实现)override(重写,覆盖)override基于类与类之间的继承关系,子类修改父类已有相同方法签名的方法的实现。overload(重载)overload指在类继承体系中的方法名相同,其方法签名相异的现象。Note: - override和overload的存在均基于在当前类中存在另一可访...
2018-03-29 22:53:39
179
原创 [Android] View setLayoutParams ClassCastException
在几个月之前就遇到了因往View.setLayoutParams方法中传了错误类型的LayoutParams所导致的ClassCastException报错的原因是显而易见的,但是当时在写Demo验证时遇到有时不会报错。。。当时就迷茫了。今天又处理了一个需要动态布局的问题,故意给View.setLayoutParams方法中传了个ViewGroup.LayoutParams,又没报错。。。...
2018-03-28 23:07:48
399
原创 Android Studio 离线开发(offline)
设置配置依赖项参考文献设置 可以看出其中动了两个地方, 1. 使用本地gradle,下载gradle解压到相应目录即可。 2. 选中 “offline work”配置依赖项要使用AS的离线开发模式的前提是备好gradle编译需要的各种依赖项,如build.gradle文件中android { compileSdkVersion 24 buildToolsVersion "2
2017-10-22 10:27:48
30229
原创 Android Studio初体验
昨晚在新电脑上装了AS,在初体验过程中遇到了不少问题,在此总结一下,以备后面需要。代理SDK的各种版本问题资源找不到如ThemeAppCompatLight代理使用AS不用代理基本是不可能的,这有两种解决办法: 1. 翻墙 2. 找没被墙的Android镜像源 在此暂时采用第2种方法,在网上找了一圈,大多数镜像均已失效。。。最终还是找到一个郑州大学的镜像源,如下图。 由此想到,应该不少
2017-10-22 09:54:07
393
转载 解析解与数值解
在解组件特性相关的方程式时,大多数的时候都要去解偏微分或积分式,才能求得其正确的解。依照求解方法的不同,可以分成以下两类:解析解和数值解。解析解(analytical solution)就是一些严格的公式,给出任意的自变量就可以求出其因变量,也就是问题的解, 他人可以利用这些公式计算各自的问题. 所谓的解析解是一种包含分式、三角函数、指数、对数甚至无限级数等基本函数的解的形式。用来求得解析解的方法称
2016-12-03 10:44:40
1488
原创 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
14550
1
转载 泰勒(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
4415
6
原创 有趣的数字
问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。 3. 最高位数字不为0。 因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。 请计算恰好有n位的有趣的数的个数。由于答案可能非
2016-11-12 15:22:56
620
转载 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-11-12 11:33:47
233
转载 Python运算符重载
http://blog.youkuaiyun.com/adupt/article/details/4551910在Python语言中提供了类似于C++的运算符重在功能:一下为Python运算符重在调用的方法如下:Method Overloads Call for__init__ 构造函数 X=Class()__del_
2016-11-07 21:31:51
337
原创 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
1001
原创 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
2777
原创 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
330
原创 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
432
原创 最长上升子序列
给定一个整数序列,找到最长上升子序列(LIS),返回LIS的长度。您在真实的面试中是否遇到过这个题? Yes说明最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。https://en.wikipedia.org/wiki/Longest_increasi
2016-07-04 14:06:01
347
原创 编辑距离
给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。你总共三种操作方法:插入一个字符删除一个字符替换一个字符您在真实的面试中是否遇到过这个题? Yes样例给出 work1="mart" 和 work2="karma"返回 3分析:动态规划:用dp(i, j)表示word1的字串(
2016-07-04 11:32:01
271
原创 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
2252
原创 不同的二叉查找树 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
1338
原创 不同的二叉查找树
给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?您在真实的面试中是否遇到过这个题? Yes样例给出n = 3,有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1
2016-07-04 00:09:23
257
原创 最大正方形
在一个二维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
665
原创 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
821
原创 排列序号
排列序号一给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。您在真实的面试中是否遇到过这个题? Yes样例例如,排列[1,2,4]是第1个排列。思路:1、由n个不重复数字刚才的排列有 n! 种;2、对所给排列从右到左(即从低位到高位)进行分析,下标i从0开始, 第i位的数字和其右边的某一个
2016-05-15 18:22:39
2041
原创 java中的移位运算符
Java中移位操作符有三个:>、>>>,分别叫做左移位操作符、有符号右移位操作符、无符号右移操作符。左位移操作符():无论是有符号数还是无符号数,都低位补0。有符号右移位操作符(>>):用符号扩展,为正高位补0,为负高位补1。无符号右移操作符(>>>):无论是有符号数还是无符号数,都高位补0,称为零扩展。注意移位预处理char、byte、
2016-05-13 21:25:29
268
原创 更新二进制位
给出两个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
440
原创 加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。样例现在有4个加油站,汽油量gas[i]=[1, 1, 3, 1
2016-05-08 20:17:51
392
原创 分割回文串
给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的回文串分割方案。样例给出 s = "aab",返回[ ["aa", "b"], ["a", "a", "b"]]解题思路:DFS用一个数组记录分割的位置,每一次都是寻找下一个可以分割的位置public class Solution { /**
2016-05-08 19:22:35
1090
原创 二叉树的序列化和反序列化
设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。如何反序列化或序列化二叉树是没有限制的,你只需要确保可以将二叉树序列化为一个字符串,并且可以将字符串反序列化为原来的树结构。样例给出一个测试数据样例, 二叉树{3,9,20,#,#,15,7},表示如下的树结构: 3 / \9 20
2016-05-07 18:28:08
540
原创 简化路径
给定一个文档(Unix-style)的完全路径,请进行路径简化。样例"/home/", => "/home""/a/./b/../../c/", => "/c"解题思路:可以把目录看成一棵树,则一条路径即为从树根到每个子节点的路径,一层层的走下去。如果当前层为 . 或者 空,则可以忽略如果当前层为 ..,则要回退到上一层目录代码:public
2016-05-07 12:54:32
2876
原创 连续子数组求和
给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果两个相同的答案,请返回其中任意一个)样例给定 [-3, 1, 3, -3, 4], 返回[1,4].思路:如果数组全为负数,则选择其最大的即可。否则偏历一次,记录以下标i结尾的最大和子数组,如果当前子数组的和小于0,则更新子数组头(即 tb
2016-05-02 22:38:27
1053
原创 打劫房屋 III
在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。算一算,如果今晚去打劫,你最多可以得到多少钱,当然在不触动报警装置的
2016-04-30 14:21:07
1701
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人