Java
文章平均质量分 72
Nixo
Android developer
展开
-
剑指offer第11题 输出一个数的二进制中1的个数
时间限制:1秒 空间限制:32768K 热度指数:202239题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示由于在计算机中的运算,都要转变为二进制数,所以我们在写这道题的时候,没有必要将其转换为二进制数(~ ̄▽ ̄)~二进制数中 n和n-1的二进制数 取与 会有一个规律,下面会画图推出规律的。也就是说,每一次执行n=n&(n-1) 就会把二进制数的n最后一位变成0那么...原创 2018-04-14 15:59:45 · 177 阅读 · 0 评论 -
【复习】 排序之插入排序
插入排序是稳定的排序算法。插入排序有点类似与抓扑克牌,比如在玩斗地主,你在玩手机,然后将牌背面朝上一个一个的叠起来,抓完牌,手机放下了,这时就要一张一张的往手上递牌,然后会以第一张为基准,然后大于第一张就插左边,小于就插右边,插排也是这样的。遍历数组list,让基数为list[i] 然后如果找到比这个基数大的,则调换位置 如果没找到,就继续往右遍历 ,反复如此代码如下: public void C...原创 2018-05-05 07:12:46 · 182 阅读 · 0 评论 -
【复习】冒泡排序 ,快速排序。
冒泡排序每一次循环都是将最大的放在最右边直到循环结束,数组就会变成有序的了具体实现是使用了两个for循环,第一个for循环选定每一个位置的数字,第二个for循环将每一个位置的数字与它后一位的数字进行对比,如果前一位大于后一位,就交换位置。这样就把大的放在了后面,实现如下。 public void Maopao(int [] list){ for (int i = 0; i <...原创 2018-05-04 13:45:43 · 171 阅读 · 1 评论 -
网易2019年实习生笔试题合集《牛牛找工作》 未ac(超时) 笔记
时间限制:2秒空间限制:65536K为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。 输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工...原创 2018-05-09 20:16:43 · 337 阅读 · 0 评论 -
[复习]Android四大组件之一 Activity
Activity 是Android四大组件其中之一,我理解为他是应用和用户交互的窗口,可以跟用户进行交互。Activity是存储在栈中的,可以理解为Activity在栈中,可以调用startActivity方法将Activity放入栈顶,栈顶的Activity是用户所能看到的Activity。Activity粗略的分为3中状态, 创建 → 运行 → 销毁 ,细分分为7种,官方叫做 Activity...原创 2018-05-02 17:48:39 · 529 阅读 · 0 评论 -
剑指offer第四题,重构二叉树
时间限制:1秒 空间限制:32768K 热度指数:314202题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。这道题涉及到了树的数据结构,首先构造树需要中序序列+前序或者后序,下面我们先来了解一下给出前序...原创 2018-04-07 13:49:57 · 261 阅读 · 0 评论 -
剑指offer第三题,从尾到头打印链表
时间限制:1秒 空间限制:32768K 热度指数:474959本题知识点: 链表题目描述输入一个链表,从尾到头打印链表每个节点的值。第一种思路,我们可以使用递归,每一次递归都判断下一个是否是空,如果是空就是尾部,然后添加到一个ArrayList里,最后返回代码如下:import java.util.ArrayList;public class Solution { ArrayL...原创 2018-04-07 13:23:31 · 184 阅读 · 0 评论 -
剑指offer第二题,替换字符串中的空格(String,StringBuffer,StringBuilder区别)
时间限制:1秒 空间限制:32768K 热度指数:539500本题知识点: 字符串代码语言:JAVA题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。这道题主要考察了我们队字符串的操作程度与思维逻辑,还考察了我们对String ,StringBuffer , StringBuilder的...原创 2018-04-05 16:57:19 · 951 阅读 · 0 评论 -
利用递归和动态规划解 剑指offer 第7,8,9题思路解析 (斐波那契额,跳台阶,变态跳台阶)
时间限制:1秒 空间限制:32768K 热度指数:286711题目描述(斐波那契数列)大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39不知道斐波那契数列的同学可以看这里啦:举个例子:斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 可以看出 第一个数是1第二个数也是1,从第三个数开始就是前两个数的和第四...原创 2018-04-11 13:57:45 · 205 阅读 · 0 评论 -
Java线程池的四种实现方法及实现原理及分析。
在阅读了《Android开发进阶,从小工到专家》的3.2.4.0~3.2.2.0 内容后启发很大,所以写了一篇博客总结一下关于线程池的部分内容。 0.首先什么是线程池?线程池就是创建多个线程并且进行管理的容器。(线程池是个容器,可以创建线程和管理线程,并且给线程分配任务)1.为什么要用线程池呢?我们都知道,在Java中创建一个线程其实是一个很简单的事情,只要new Thread就可以了,但是这样做...原创 2018-04-15 18:12:23 · 18256 阅读 · 5 评论 -
剑指offer第6题 ,旋转数组的最小值。
时间限制:3秒 空间限制:32768K 热度指数:286326本题知识点: 查找题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。旋转数组就是讲前几个元素转移到后部...原创 2018-04-09 20:48:45 · 116 阅读 · 0 评论 -
剑指offer第5题,用两个栈实现队列
时间限制:1秒 空间限制:32768K 热度指数:210050本题知识点: 队列 栈题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。这道题其实就是想让我们用两个栈的(先进后出) 来表示队列的(先进先出)那么我们就可以模拟出队列了,1.写一个入队方法(push)和一个出队方法(pop),2定义两个stack,stack1为入队的栈,stack2为出队的栈因...原创 2018-04-09 20:36:09 · 165 阅读 · 0 评论 -
Java 单例设计模式的5种写法及优缺点
单例设计模式的定义:保证在整个系统中,一个类只存在一个实例的设计模式就是单例设计模式。接地气的讲单例的好处就是可以少new对象,减少内存的垃圾,缩短GC(垃圾回收)的时间。Java中实现单例的5种方法 分别有 饿汉,懒汉,DCL,静态内部类,枚举,接下来依次实现和讲解优缺点。1.饿汉 饿汉的实现首先要有一个private的构造函数 然后 创建一个静态的对象 在通过内部静态的get方法return ...原创 2018-04-09 17:12:56 · 364 阅读 · 0 评论 -
剑指offer第12题 输出一个数的整数次幂
时间限制:1秒 空间限制:32768K 热度指数:208968题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。这道题主要考查我们对于doble和int类型的熟练度,还有当用例为负数的时候,我们该怎么做。解题的思路如下:1.创建for循环,进行用例的绝对值次循环,每一次都将做 乘自己的运算(*=)2.判断用例正负,如果是负,就将1...原创 2018-04-14 16:32:38 · 169 阅读 · 0 评论 -
合法括号匹配问题(深度,方案个数)已AC
合法括号满足的条件为左边第一个括号必须为( 其次满足(个数等于)个数,这样称为合法括号例如:() ((())) (()())了解了合法括号之后,先来看第一个 合法括号的深度问题例题1对于一个合法的括号序列我们又有以下定义它的深度:1、空串""的深度是02、如果字符串"X"的深度是x,字符串"Y"的深度是y,那么字符串"XY"的深度为max(x,y) 3、如果"X"的深度是x,那么字符串".原创 2018-05-20 14:08:53 · 4328 阅读 · 0 评论