算法
neuHenry
一个还没有入门的程序员!!!
展开
-
链表部分翻转-Java
题目描述:给定一个链表,翻转该链表从m到n的位置。要求:直接翻转而非申请新的空间; 如:给定1–>2–>3–>4–>5,m=2,n=4;m,n满足1<=m<=n<=链表长度; 返回1–>4–>3–>2–>5原创 2017-03-18 19:50:37 · 2405 阅读 · 2 评论 -
(剑指offer)正则表达式匹配
题目描述: 请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配;原创 2017-09-20 12:15:59 · 329 阅读 · 0 评论 -
(剑指offer)数组中任意一个重复的数字
题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。原创 2017-09-19 16:29:05 · 409 阅读 · 0 评论 -
(剑指offer)数组中出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。原创 2017-09-11 15:30:58 · 212 阅读 · 0 评论 -
(剑指offer)丑数,只包含因子2、3和5的数称作丑数
题目:按从小到大的顺序输出前n个丑数,习惯上把1当做第一个丑数;原创 2017-09-11 11:21:16 · 1308 阅读 · 0 评论 -
(剑指offer)两个单向链表,找出它们的第一个公共结点
题目:输入两个单向链表,找出它们的第一个公共结点 如:给定链表1:6–>1–>2–>4–>3–>2–>5–>2–>6 链表2:2–>1–>8–>3–>2–>5–>2–>6算法思路: 首先第一次遍历两个链表,分别得到它们的长度为m和n,判断链表长度m和n的大小,第二次遍历时,先在较长的一个链表上走(m-n或n-m)步,再同时在两个链表上遍历,直到找到它们第一个相同的结点3;原创 2017-09-10 15:47:53 · 299 阅读 · 0 评论 -
(剑指offer)青蛙跳台阶
题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。(循环实现与递归实现)原创 2017-09-18 10:06:37 · 557 阅读 · 1 评论 -
(剑指offer)旋转数组的最小数字
题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。原创 2017-09-16 22:03:54 · 305 阅读 · 0 评论 -
(剑指offer)重建二叉树
题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。原创 2017-09-15 18:09:00 · 241 阅读 · 0 评论 -
MD5加密算法流程
MD5:Message-Digest Algorithm 5(信息-摘要算法),属于哈希散列算法一类,对于MD5而言,有两个特性是很重要的, 第一:明文数据经过散列以后的值是定长的; 第二:任意一段明文数据,经过散列以后,其结果必须永远是不变的。 前者的意思是可能存在有两段明文散列以后得到相同长度的结果,后者的意思是如果我们散列特定的数据,得到的结果一定是相同的。原创 2017-08-19 10:44:59 · 10031 阅读 · 4 评论 -
笔试时常用排序算法时间复杂度和空间复杂度
摘自维基百科: http://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95#.E7.A8.B3.E5.AE.9A.E6.80.A7在计算机科学所使用的排序算法通常被分类为:计算的时间复杂度(最差、平均、和最好性能),依据列表(list)的大小(n)。一般而言,好的性能是O(n log n),且坏的性能是O(n2)。转载 2017-05-13 21:10:13 · 440 阅读 · 0 评论 -
链表划分-Java
题目: 给定一个链表和一个值x,将链表划分成两部分,使得划分后小于x的结点在前,大于等于x的结点在后,在这两部分中要保持原链表中的结点的出现顺序; 如: 给定链表1->2->4->3->2->5->2->6 和 x=3,返回1->2->2->2->4->3->5->6;原创 2017-05-01 22:01:13 · 634 阅读 · 0 评论 -
Java笔试题:只能进行0与其他数的swap操作的排序算法
题目:长度为N的数组乱序存放着0到N-1.现在只能进行0与其他数的 swap 操作,请设计并实现排序,必须通过交换实现排序。原创 2017-03-11 20:32:32 · 1231 阅读 · 0 评论 -
链表相加-Java-笔试题
题目:给定两个链表,分别表示两个非负整数,它们的数字逆序存储在链表中,且每个结点只存储一个数字,计算两个数的和,并且返回和的链表头指针; 例如:输入:2->4->3、5->6->4,输出:7->0->8原创 2017-03-13 21:56:52 · 1150 阅读 · 0 评论 -
删除链表中的重复结点-Java
题目:给定排序的链表,删除重复元素,只保留重复元素第一次出现的结点; 如:给定:2–>3–>3–>5–>7–>8–>8–>8–>9–>9–>10 返回:2–>3–>5–>7–>8–>9–>10原创 2017-03-21 20:39:57 · 2554 阅读 · 2 评论 -
统计一个ViewGroup中包含的子View的个数(递归和非递归实现)
编码实现统计一个ViewGroup中锁包含的子View的个数1、首先想到的肯定是递归实现,代码如下: /** * 递归统计一个View的子View数(包含自身) * * @param root * @return */ public int count1(View root) { int viewCount = 0;...原创 2019-03-20 17:41:46 · 2539 阅读 · 0 评论