- 博客(61)
- 资源 (1)
- 收藏
- 关注
原创 [编程题] 大整数相乘
有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。 输入描述: 空格分隔的两个字符串,代表输入的两个大整数输出描述: 输入的乘积,用字符串表示输入例子1: 72106547548473106236 982161082972751393输出例子1: 70820244829634538040848656466105986748import ja
2017-08-05 19:55:11
2331
原创 Android6.0运行时权限
一、运行时权限所谓运行时权限,指的是在Android6.0及以上版本中,在app运行时才请求相关权限,从而让每项权限都在用户知情的情况下被授权(当然用户可以拒绝)。而不同于Android6.0之前在安装app时告知用户获取全部权限。 关于权限,分为正常权限(一般和设备相关)、危险权限(用户数据相关)和特殊权限。具体可见https://developer.android.com/guide/topi
2017-06-17 15:21:27
3723
原创 [编程题] 01翻转
牛牛正在挑战一款名为01翻转的游戏。游戏初始有A个0,B个1,牛牛的目标就是把所有的值都变为1,每次操作牛牛可以任意选择恰好K个数字,并将这K个数字的值进行翻转(0变为1,1变为0)。牛牛如果使用最少的操作次数完成这个游戏就可以获得奖品,牛牛想知道最少的操作次数是多少? 例如:A = 4 B = 0 K = 3 0000 -> 1110 -> 1001 -> 0100 -> 1111 需要
2017-04-07 16:12:08
3970
2
原创 volley中的内存泄露
今天对终于写好的APP进行测试时,发现有严重的内存泄露。使用LeakCanary分析,发现是volley引起的。 参考http://www.jianshu.com/p/c87677f01ed5和https://github.com/mcxiaoke/android-volley/pull/64,发现: 原因:在官方的volley包中,NetworkDispatcher中的run方法中,当请求队列
2017-01-16 18:57:46
1151
原创 数值的整数次方
【题目】给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 【要求】时间限制:1秒 空间限制:32768Kpublic double Power(double base, int exponent) { //法1:7^1101 = 7^0001*7^0100*7^1000 第一位的底数7 第二位的底数7*7 第
2016-12-20 14:37:24
620
原创 旋转数组的最小数字
【题目】把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 【要求】时间限制:3秒 空间限制:32768Kimport java.util.ArrayList;pu
2016-12-19 20:38:28
303
原创 用两个栈实现队列
【题目】用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 【要求】时间限制:1秒 空间限制:32768Kimport java.util.Stack;public class Solution { //入栈 Stack<Integer> stack1 = new Stack<Integer>(); //出栈 Stack<Integ
2016-12-15 18:53:14
215
原创 重建二叉树
【题目】输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 【要求】时间限制:1秒 空间限制:32768K/** * Definition for binary tree * public class Tree
2016-12-15 16:43:10
217
原创 从尾到头打印链表
【题目】输入一个链表,从尾到头打印链表每个节点的值。 【要求】时间限制:1秒 空间限制:32768K/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;*
2016-12-13 15:42:55
233
原创 替换空格
【题目】请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 【要求】时间限制:1秒 空间限制:32768Kpublic static String replaceSpace(StringBuffer str) { for (int i = 0;i<str.length();i++)
2016-12-13 15:29:43
219
原创 二维数组中的查找
【题目】在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 【要求】时间限制:1秒 空间限制:32768K。/** * 从左下角开始查询,如果小于target,则在右边,列数++;否则,则在上边,行数--。 * @param target * @para
2016-12-08 19:35:16
220
原创 Java内存分配与垃圾回收(二)
写在前面:主要为《深入理解Java虚拟机》的读书笔记,加上自己的思考,本篇主要讲垃圾回收,图片主要来自网络,侵删。 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进来,墙里面的人却想出来。一、概述 Java虚拟机中的内存回收主要集中在Java堆和方法区内。 关于内存回收:哪些内存需要回收?什么时候回收?如何回收??由上篇Java内存分配可知,Ja
2016-12-07 17:08:03
650
原创 Java内存分配与垃圾回收(一)
写在前面:主要为《深入理解Java虚拟机》的读书笔记,加上自己的思考,本篇主要讲内存分配,图片来自网络,侵删。 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进来,墙里面的人却想出来。一、概述C/C++ 既拥有最高权力:拥有每个对象的所有权;又担负责任:管理对象从创建到终结的生命周期。Java 虚拟机自动内存管理机制完成对象的创建和垃圾回收;一般
2016-12-06 16:10:48
1144
原创 Android中使用多线程的各种姿势
写在前面:内容主要为黄岳钊老师视频分享课的学习笔记。1)为什么需要多线程处理?解决耗时任务 文件IO、联网请求、数据库操作、RPC提高并发能力 同一时间处理更多事情防止ANR InputDispatching Timeout:输入事件分发超时5s(触摸或按键) Service Timeout:服务20s内未执行完 BroadcastQueue Timeout:前台广播10s内未执
2016-12-04 15:49:17
5673
1
原创 [编程题]求 1-N 中数字 1 的个数
解1:简单粗暴的统计法。public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int result = 0; for (int i
2016-12-01 17:35:55
1023
原创 [编程题] 买苹果
小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。 输入描述: 输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果输出描述: 输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1输入例子: 20输出例子:
2016-12-01 13:48:01
1119
原创 [编程题] 最大的奇约数
小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求出 f(1) + f(2) + f(3)…….f(N) 例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 +
2016-12-01 11:47:36
1221
2
原创 [编程题] 暗黑的字符串
一个只包含’A’、’B’和’C’的字符串,如果存在某一段长度为3的连续子串中恰好’A’、’B’和’C’各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的。例如: BAACAACCBAAA 连续子串”CBA”中包含了’A’,’B’,’C’各一个,所以是纯净的字符串 AABBCCAABB 不存在一个长度为3的连续子串包含’A’,’B’,’C’,所以是暗黑的字符串 你的任务就是计算出长度为
2016-11-30 20:20:10
702
1
原创 [编程题] 跳石板
小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3……. 这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。 例如: N = 4,M = 24: 4->6->8->1
2016-11-30 19:10:08
979
原创 GreenDao3使用笔记
概述 GreenDao是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,如下: 关于greenDao的优势,官网如下:Maximum performance (probably the fastest ORM for Android); our benchmarks are open sourced tooEasy to use powerful AP
2016-11-24 19:42:49
469
原创 [LeetCode-Java]48. Rotate Image
You are given an n x n 2D matrix representing an image.Rotate the image by 90 degrees (clockwise).解1:很容易想到旋转后的矩阵位置对应关系为matrix_new[m][n] = matrix[matrix.length-1-n][m]; 因而,一种比较笨的方法是先把matrix复制,再取对应位置的值到
2016-11-24 10:36:48
623
原创 [LeetCode-Java]46. Permutations
Given a collection of distinct numbers, return all possible permutations.For example, [1,2,3] have the following permutations: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]
2016-10-19 22:23:21
993
原创 [LeetCode-Java]43. Multiply Strings
Given two numbers represented as strings, return multiplication of the numbers as a string.Note: The numbers can be arbitrarily large and are non-negative. Converting the input string to integer is N
2016-10-08 20:34:31
1216
原创 SwipeRefreshLayout基本使用和冲突解决机制
一、SwipeRefreshLayout简单使用SwipeRefreshLayout 是官方的一个可以下拉刷新的ViewGroup,其内只能填充一个子view,比如ListView、RecyclerView等。使用之前我们先来了解一下主要的方法。 (1)主要方法: 1、setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener lis
2016-10-08 17:14:24
1017
原创 [LeetCode-Java]40. Combination Sum II
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.Each number in C may only be used once in the combination.No
2016-10-07 22:00:21
372
原创 ViewPager全面解析
写在前面: 最近发现,对一些基本用法,隔一段时间不用又会无从下手。因此,慢慢养成了写总结博客的习惯,一方面加深印象理清知识点,另一方面,把自己的学习总结分享给大家。一、ViewPager的基本使用1、ViewPager是什么? ViewPager继承自ViewGroup,也是一个容器类。实际上是一个view的管理器,实现左右滑动的功能。通常我们需要ViewPager+adapter实现左右滑动功
2016-10-07 16:51:54
647
原创 [LeetCode-Java]39. Combination Sum
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.The same repeated number may be chosen from C unlimited number of t
2016-10-06 22:01:58
358
原创 ListView性能优化
ListView是一个常用到的控件,常常配合各种adapter一起用于显示列表内容。 关于列表显示: (1)Listview:用来展示列表的view。 (2)adpater:适配器,是连接列表与待显示数据的桥梁,为listview提供数据源。其中一个比较常用的方式是继承自BaseAdapter,灵活的定制自己的adapter。/** * Created by Administrator on
2016-10-06 17:40:06
522
原创 Calendar.getInstance() gives error in Android Studio
在获取当前时间小时数的时候如下: Calendar calendar = Calendar.getInstance(); int hour = calendar.get(calendar.HOUR_OF_DAY);会产生error:Call requires API level 24(current minimum is 14).解:注意使用Calendar时导入java.ut
2016-10-04 22:59:51
2044
原创 [LeetCode-Java]35. Search Insert Position
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.You may assume no duplicates in the array.Here
2016-10-04 14:42:31
328
原创 [LeetCode-Java]34. Search for a Range
Given a sorted array of integers, find the starting and ending position of a given target value.Your algorithm’s runtime complexity must be in the order of O(log n).If the target is not found in the ar
2016-10-04 14:21:25
313
原创 [LeetCode-Java]31. Next Permutation
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.If such arrangement is not possible, it must rearrange it as the lowest possible orde
2016-10-03 23:05:13
258
原创 [LeetCode-Java]29. Divide Two Integers
Divide two integers without using multiplication, division and mod operator.If it is overflow, return MAX_INT.解:题目不能用乘除法和取余运算,直接迭代相减又会超时(时间复杂度O(n)),考虑使用移位运算。 比如20/3 , 20 = 3*2^2+3*2^1+2 , 因而20/
2016-10-03 22:05:04
319
原创 [LeetCode-Java]17. Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit string “2
2016-09-29 15:01:53
278
原创 [LeetCode-Java]22. 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:[ “((()))”, “(()())”, “(())()”, “()(())”,
2016-09-28 18:39:22
237
原创 [LeetCode-Java]18. 4Sum
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.Note: The solution set mu
2016-09-28 16:43:28
329
原创 [LeetCode-Java]16. 3Sum Closest
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly
2016-09-28 15:42:03
290
原创 [LeetCode-Java]15. 3Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note: The solution set must not contain duplic
2016-09-27 22:43:23
277
原创 [LeetCode-Java]11. Container With Most Water
Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lin
2016-09-26 21:03:57
294
原创 [LeetCode-Java]3. Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.
2016-09-24 21:26:01
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人