08 2015 档案

摘要: 阅读全文
posted @ 2015-08-31 20:25 lisahappy 阅读(183) 评论(0) 推荐(0)
摘要://不用加减乘除四则运算,来做加法//题目:两个数做加法。//思路:用二进制的位运算的思路。第一步:首先两数相加考虑进位。可以用异或。//第二步:两个数相加只考虑进位,并将最后的结果左移.第三步:将第一二步的结果相加。public class AddN { public int add(int... 阅读全文
posted @ 2015-08-31 20:24 lisahappy 阅读(186) 评论(0) 推荐(0)
摘要:import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;//圆圈中最后剩下的数字//题目:0,1,2,……n-1,将这n个数排列成一个圆圈,从0开始,... 阅读全文
posted @ 2015-08-31 17:21 lisahappy 阅读(297) 评论(0) 推荐(0)
摘要://扑克牌的顺子//题目:在一个扑克牌中随机的抽5张牌,看是不是顺子。大小王为0,A为1,J为11,Q为12,K为13.其他数字为自己本身。//思路:大小王可以代表任意一个数字,因此我们在看是不是顺子之前要先对数字进行排序,数出0的个数。//如果相连的两个数字之间相差的总数是超出0的个数,那么就不是... 阅读全文
posted @ 2015-08-31 14:32 lisahappy 阅读(289) 评论(0) 推荐(0)
摘要:题目:把n个骰子扔到地上,骰子之和为S,输入n,打印s所有可能的值出现的概率。思路:由于骰子的点数为1~6,因此n个骰子之和的大小为n~6n之间。故可以定义一个数组来存放这6n-n+1个数出现的次数。因为有n个数,每个数有六种可能,因此总的次数为6^n个。让数组中每一个可能的值出现的次数除以总次数,... 阅读全文
posted @ 2015-08-30 21:51 lisahappy 阅读(168) 评论(0) 推荐(0)
摘要://题目1:翻转单词顺序例如“Hello world!”翻转后为world! Hello。//思路:首先翻转整个字符串,然后再分别翻转每个单词。//题目2:左旋转字符串,是将字符串的前面几个(n)字符放到整个字符串的后面。例如:“helloWorld”,旋转后lloWorldhe//思路:将字符串分... 阅读全文
posted @ 2015-08-30 19:46 lisahappy 阅读(323) 评论(0) 推荐(0)
摘要:题目1:输入一个排序数组和一个值S,输出数组中两个数的和为S的任意一对数。思路:分别用两个指针指向数组的头start和尾end。如果两个数字之和等于S输出。如果打于,则end--,再次相加。因此循环条件就是starts) end--; else ... 阅读全文
posted @ 2015-08-30 14:56 lisahappy 阅读(224) 评论(0) 推荐(0)
摘要:题目:输入一个数组,该数组中有两个只出现一次的数字,其他的数字都出现两次,输出出只出现一次的数字。思路:首先,我们可以将这个数组分成两份,一份里面放一个只出现一次的数字。那么我们该怎么分呢?将整个数组中的数字都异或,那么那些等的数字异或后都化为0,因此最后出现的不为0的数字就是两个只出现一次的数字他... 阅读全文
posted @ 2015-08-30 10:33 lisahappy 阅读(288) 评论(0) 推荐(0)
摘要:题目:1:输入一个二叉树,求二叉树的深度。从根节点开始最长的路径。思路:我们可以考虑用递归,求最长的路径实际上就是求根节点的左右子树中较长的一个然后再加上1.题目2:输入一颗二叉树的根节点,判断该二叉树是不是平衡二叉树。平衡二叉树是这样的数,每一个节点左右子树的深度差不超过1.思路1:从根节点开始判... 阅读全文
posted @ 2015-08-29 18:49 lisahappy 阅读(432) 评论(0) 推荐(0)
摘要:题目:统计一个数字在排序数组中出现的次数。思路:采用二分查找,找到该数字在数组中第一次出现的位置,然后再找到组后一个出现的位置。两者做减法运算再加1.时间复杂度为O(logn)Java代码://数字K在排序数组中出现的次数//思路:用二分查找,找到第一个k和最后一个Kpublic class Num... 阅读全文
posted @ 2015-08-29 10:52 lisahappy 阅读(237) 评论(0) 推荐(0)
摘要:优化时间和空间效率的方法:1,时间换空间。2,动态规划。3,找规律。 阅读全文
posted @ 2015-08-28 21:06 lisahappy 阅读(167) 评论(0) 推荐(0)
摘要:题目:输入一个正整数数组,将所有的数,排列起来,组成一个最小的数。 阅读全文
posted @ 2015-08-28 21:03 lisahappy 阅读(173) 评论(0) 推荐(0)
摘要:题目:输入一个整数n,从1到n这n个十进制整数中1出现的次数。思路1:对1到n中的任意一个数i对其进行求余数来判断个位是否为1,然后再求除数,判断十位是否为1.统计出1的个数。然后对1到n用一个循环将所有的数都加起来。时间复杂度为O(nlogn).思路2:根据数字的规律来求。例如:21344这个数,... 阅读全文
posted @ 2015-08-28 20:57 lisahappy 阅读(324) 评论(0) 推荐(0)
摘要:思路1:要求的是两个链表的第一个公共节点,首先想到的是用栈来存放两个链表,然后依次从栈中抛出,直到最后一个相同的节点为止。但是要用到两个栈,空间复杂度为O(n);思路2:从头到尾分别遍历两个链表得到链表的长度风别为,len1和len2,求出两者的差值dif,然后现在长的链表上面走dif步,然后同步走... 阅读全文
posted @ 2015-08-28 16:00 lisahappy 阅读(382) 评论(0) 推荐(0)
摘要:题目:在数组中如果两个数字的前面的数比后面的数大,则称为一对逆序对。输入一个数组求出数组中逆序对的总数。以空间换时间:思路:借助一个辅助数组,将原来的数组复制到该数组中。然后将该数组分成子数组,然后统计子数组中内部的逆序,然后再统计两个相连的子数组中的逆序对,这个过程用到了归并排序。时间复杂度为O(... 阅读全文
posted @ 2015-08-27 14:02 lisahappy 阅读(389) 评论(0) 推荐(0)
摘要:题目:在字符串中第一次出现切只出现一次的字符思路:用HashMap来存放对应的char值和该char出现的次数。做一次变量就可以得到第一个只出现一次的字符。Java代码:import java.util.LinkedHashMap;//思路:用HashMap来存放对应的char值和该char出现的次... 阅读全文
posted @ 2015-08-26 21:54 lisahappy 阅读(221) 评论(0) 推荐(0)
摘要:计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足存在i(1Ti+1>........ 阅读全文
posted @ 2015-08-26 21:00 lisahappy 阅读(361) 评论(0) 推荐(0)
摘要:题目:给定一个字符串,求最后一个单词的长度,每个单词中间有空格。例如:输入:hello world 输出:5C代码:通过。#include #define maxn 1000#include int main(){ int number = 0,i,len; char s[maxn];... 阅读全文
posted @ 2015-08-26 20:41 lisahappy 阅读(354) 评论(0) 推荐(0)
摘要:题目:我们把只包含因子2,3,5的数叫做丑数。寻找第1500个丑数。通常把1当成第一个丑数。思路1:第一步判断是否为丑数:丑数是只包含2,3,5的数,因此一定可以被2,3,5整除。通过求余数是否为零做为判断条件,通过除以来减小整个数的值,知道整个数为1.返回true.第二步找到第N个丑数的值,这一种... 阅读全文
posted @ 2015-08-25 17:23 lisahappy 阅读(303) 评论(0) 推荐(0)
摘要:我们来一下如下代码:package whu.cn.whushare.ui.main.known.adapter;import android.content.Context;import android.text.TextUtils;import android.view.LayoutInflate... 阅读全文
posted @ 2015-08-25 09:48 lisahappy 阅读(290) 评论(0) 推荐(0)
摘要:题目:输入一个数组,数组中有正也有负,数组中连续的一个或者连续的多个数字组成一个子数组。求所有的子数组和的最大值。要求时间复杂度为O(n)思路:我们的最直观的想法就是求出这个数组中的所有的子数组,然后比较他们的和的大小,如果输入的数组元素个数为N,那么就要有N(N+1)/2个子数组。很明显是不符合要... 阅读全文
posted @ 2015-08-22 16:56 lisahappy 阅读(263) 评论(0) 推荐(0)
摘要:题目:输入n个数,输出最小的k个数。时间复杂度为O(n)思路1:我们想的到的最直接的思路就是对这个N个数进行排序,然后就可以找到最小的k个了,同样可以用快排partition。但是只要找到前K个最小的元素,并不一定要排好序。Java代码:import java.util.Random;//时间复杂度... 阅读全文
posted @ 2015-08-22 15:14 lisahappy 阅读(241) 评论(0) 推荐(0)
摘要:题目:输入一个数组,找出一个数字,它在数组中出现的次数超过数组的一半。题目规定如果可以改变数组中元素的位置。思路1:如果数组是排序的,那么中间元素的位置不就是次数超过数组一半的元素吗?是的,因此我们可以才用partition来做判断。如果partition的得到的整数index是在数组的中间,那么该... 阅读全文
posted @ 2015-08-22 11:46 lisahappy 阅读(236) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2015-08-20 12:44 lisahappy 阅读(182) 评论(0) 推荐(0)
摘要:题目:输入一个字符串,打印出该字符串的全排列。思路:将整个字符串分成两部分,第一部分为一个字符,将该字符和该字符后面的字符(直到最后一个字符)依次交换,确定第一个字符;然后固定第一个字符,将后面的字符也按照这种思维递归,即可完成整个字符串的排列。如图所示:Java代码:public class St... 阅读全文
posted @ 2015-08-20 12:42 lisahappy 阅读(192) 评论(0) 推荐(0)
摘要:题目:输入一个二叉收索树,将二叉搜索树转换成排序的双向链表。要求不能创建节点,只能将链表中的指针进行改变。将复杂的问题简单化:思路:二叉收索树,本身是一个排序结构,中序遍历二叉收索树就可以得到一组排序数。如下图4.12所示。如何转换且看图4.13.将二叉搜索树变成三个部分,将左子树转换为二叉排序树,... 阅读全文
posted @ 2015-08-20 10:15 lisahappy 阅读(299) 评论(0) 推荐(0)
摘要:题目:请写一个函数clone(ComplexListNode pHead),实现复杂链表的复制。复杂链表的数据结构如下:public class ComplexListNode{int m_nValue;ComplexListNode m_pNext;ComplexListNode m_pSlipi... 阅读全文
posted @ 2015-08-19 14:35 lisahappy 阅读(189) 评论(0) 推荐(0)
摘要:题目:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点往下一直到叶子节点形成一条路径。思路:很明显用前序遍历可以从根节点开始遍历到叶子节点,然后将遍历的节点添加到栈中进行保存路径。并且设置一个sum变量来记录节点值的和。通过对sum的操作来达到目的。将抽象的问题具... 阅读全文
posted @ 2015-08-19 09:33 lisahappy 阅读(339) 评论(0) 推荐(0)
摘要:二叉搜索树:二叉搜索树根节点的左边都比根节点小,右边都比根节点大。例题:输入一个数组,判断是否为二叉搜索树的后序遍历序列,如果是,返回true,如果不是,返回flase,假设没有重复的元素。思路:由于是后序遍历,所以数组的最后一个节点是根节点,而且,由于是二叉收索树,所以,前面的数据被分为两部分,右... 阅读全文
posted @ 2015-08-18 11:21 lisahappy 阅读(710) 评论(0) 推荐(0)
摘要:Android中统一用Intent来封装程序的“调用意图“。不管程序想启动一个Activity,一个Servicer,还是一个BroadcastReceiver。使用Intent提供了一个统一的编程模型。一定程度上面起到解耦的作用。1.Intent在Android开发中的作用:Android应用中启... 阅读全文
posted @ 2015-08-14 15:30 lisahappy 阅读(674) 评论(0) 推荐(0)
摘要:1.为什么用Fragment(Android3.0提出)来替代TabActivity(Android4.0以后正式被弃用)?因为Fragment可以适应各种不同屏幕大小,也就是适应不同屏幕的分辨率。例如:当开发的应用程序同时适用于平板电脑和手机时,可以利用Fragment实现灵活的布局,改善用户体验... 阅读全文
posted @ 2015-08-11 17:03 lisahappy 阅读(1098) 评论(0) 推荐(0)
摘要:Android运行环境主要指的虚拟机技术—Dalvik.Android中的所有Java才程序都是运行在Dalvik vm上的,Android上的每个程序都有自己的线程,DVM执行的是.dex的Dalvik excutable文件,每个Android应用有一个独立的DVM实例并在其解释下执行。每一个应... 阅读全文
posted @ 2015-08-06 20:24 lisahappy 阅读(373) 评论(0) 推荐(0)
摘要:Annotation 分类1 标准 Annotation包括Override, Deprecated, SuppressWarnings,标准 Annotation 是指 Java 自带的几个 Annotation,上面三个分别表示重写函数,函数已经被禁止使用,忽略某项 Warning2 元 Ann... 阅读全文
posted @ 2015-08-05 21:56 lisahappy 阅读(614) 评论(0) 推荐(0)