- 博客(24)
- 收藏
- 关注
原创 剑指offer-二叉树的镜像
题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \
2017-10-12 19:38:44 282
原创 剑指offer-树的子结构
题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 代码如下: /** * Created with IntelliJ IDEA. * Author: 郑文华 * Date: 2017/10/12 * Time: 14:21 * public static class TreeNode {
2017-10-12 14:50:50 289
原创 牛客网 剑指offer-反转列表
题目描述: 输入一个链表,反转链表后,输出链表的所有元素。代码如下:public class Solution { public ListNode ReserverList(ListNode head){ if(head == null) return null; ListNode pre = null; ListNo
2017-09-26 15:20:13 256
原创 牛客网 剑指offer-链表中倒数第K个节点
问题描述:输入一个链表,输出该链表中倒数第k个结点。 方法一:首先遍历该链表,得其该链表的长度,然后输出链表的倒数第K个值。代码如下:/** * Created with IntelliJ IDEA. * Author: 郑文华 * Date: 2017/9/25 * Time: 19:10 * public class ListNode { int val; ListN
2017-09-25 19:45:05 314
原创 牛客网 剑指offer-调整数组顺序使奇数位于偶数前面
问题描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 问题分析:这道题是我看通过的代码做出来的,在看了别人的思路之后,有一种恍然大悟的感觉,同时,也感到编程的乐趣。在这里主要分析两种思路: 方法一:类似冒泡算法,前偶后奇数就交换 代码如下:public cl
2017-09-24 19:32:45 221
原创 牛客网 剑指offer-数值的整数次方
问题描述: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 代码如下:public class Solution {public double Power(double base, int exponent){ double total = Math.pow(base,exponent); re
2017-09-24 18:36:35 345
原创 牛客网 剑指offer-二进制中1的个数
public class Solution { public int NumberOf1(int n){ int t = 0; char[] ch = Integer.toBinaryString(n).toCharArray(); for(int i = 0; i < ch.length; i++){ if(ch[
2017-09-24 18:24:26 376
原创 牛客网 剑指offer-矩形覆盖
问题描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 问题分析: 看了别人通过的代码分析,有一个比较易懂,在此把链接如下。 链接:https://www.nowcoder.com/questionTerminal/72a5a919508a4251859fb2cfb987a0e6 来源:牛客网代码如
2017-09-22 08:52:46 229
原创 牛客网 剑指offer-变态跳台阶
问题描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。问题分析: 因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1) 跳2级,剩下n-2级,则剩下跳法是f(n-2) 所以f(n)=f(n-1)+f(n-2)+…+f(1) 因为f(n-1)=f(n-2)+f(n-
2017-09-21 16:04:24 404
原创 牛客网 剑指offer-跳台阶
问题描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。写出前四项之后,就会发现这是一个斐波那契数列,该项等于前两项之和,代码如下: public class Solution { public int JumpFloor(int target) { if(target == 0){ ret
2017-09-21 15:08:12 443
原创 剑指offer-斐波那契数列
问题描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n本问题比较简单,代码如下: public class Solution { public int Fibonacci(int n) { if(n == 0){ return 0; } if(n == 1
2017-09-21 14:39:51 248
原创 剑指offer—旋转数组的最小数字
问题描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。代码如下:/** * Created with IntelliJ IDEA. * Autho
2017-09-20 20:48:12 217
原创 剑指offer-用两个栈实现队列
问题描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。代码如下: import java.util.Stack;public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int nod
2017-09-20 20:13:09 193
原创 剑指offer-从尾到头打印链表
问题描述:输入一个链表,从尾到头打印链表每个节点的值。解法一: 借用栈,先将输进来的节点存储在栈里面,然后在用线性表从栈中一一取出,然后进行输出。代码如下:/** * Created with IntelliJ IDEA. * Author: 郑文华 * Date: 2017/8/31 * Time: 9:28 * * public class ListNode {
2017-08-31 16:09:35 217
原创 替换空格
问题描述: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。方案一:用字符串的追加,这里简单的说一下String、StringBuffer、StringBuilder的区别 String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。 Stri
2017-08-30 14:53:59 232
原创 二维数组中的查找
题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解法一: 爸每一行都看成有序递增的数组,利用二分查找,通过遍历每一行得到答案,时间复杂度是nlogn。代码如下:/** * Created with IntelliJ IDEA. * Author: 郑
2017-08-30 09:14:44 229
原创 关于抽象类的几个注意点
上篇博客具体的说明了抽象类,以及为什么使用抽象类,现在就说一下关于抽象类的几个注意点: 1、抽象方法不能包含在非抽象类中。如果抽象父类的子类不能实现所有的抽象方法,那么子类也必须定义为抽象的。换句话说,在抽象类扩展的非抽象类中,必须实现所有的抽象方法。还要注意到,抽象类是非静的。 2、抽象类是不能使用new关键字来初始化的。但是,任然可以定义它的构造方法,这个构造方法在它的子类的构造方法中调用
2017-06-07 16:34:47 1168
原创 抽象类
笔者这是第三次来看这本java程序设计语言基础篇,以前看的时候没有敲过相关的代码,直到在工作室呆了一年后,有重新把本书看了一遍,对里面一些精华的部分,有了更深的理解。比如抽象类,相信许多初学的小伙伴对此很不理解,接下来,我就对这部分内容做一个总结~抽象类: 在继承的层次结构中,随着每个新的子类的出现,类会变得越来 越明确和具体。如果从一个子类追溯到父类,类就会变得更加不明确和具体。类的设计应
2017-06-05 09:05:09 273
原创 对象和类之静态变量、常量和方法
在上的篇的博客中创建的Circle()方法属于实例方法,里面的变量也是属于实例变量,即实例变量是绑定到类的某个特定的实例的,它不能被同一个类的不同对象共享 。例如,创建一下两个对象:Circle() circle1 = new Circle();Circle() circle2 = new Circle(5); 这两个实例的属性是不相关的,它们储存在不同的内存位置,circle1 的变化不会
2017-06-02 16:05:27 816
原创 对象和类之构造方法
构造方法是一种特殊的方法,它有以下三个特殊性: 1)构造方法必须具备和所在类相同的名字 2)构造方法没有返回值,甚至连void也没有 3)构造方法是在创建一个对象使用 new 时调用的。构造方法的作用是初始化对象。 构造方法具有和定义它的类名完全相同的名字 。和所有其他方法一样,构造方法也可以重载(也就是说,可以有多个同名的构造方法,但它们要有许多不同的签名),这样易于用不同的初始数据值来
2017-06-02 09:09:44 344
原创 打印日历
这篇的算法是打印日历,可能对许多小伙伴来说有点困难,但是,笔者还是想让大家硬着头皮看完,毕竟,学会这个算法之后,小伙伴们就不用买日历了~~~好了,一起来看代码package printdate;import java.util.Scanner;/** * 编写一个程序,显示给定年月的日历。 * * Created by 郑文华 on 2017/6/1. */public class Pri
2017-06-01 21:31:38 732
原创 判断是否为守形数
import java.util.Scanner;/** * 题目描述 守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。 输入描述:输入包括1个整数N,2<=N<100。 输出描述:可能有多组测试数据,对于每组数据, 输出”Yes!”表示N是守形数。 输出”No!”表示N不是
2017-05-30 20:59:37 1721
原创 判断是否为对称矩阵
package juzheng;import java.util.Scanner;/** * 对称矩阵 * 题目描述 输入一个N维矩阵,判断是否对称。 输入描述:输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。 接下来的N行,每行包括N个数,表示N*N矩阵的元素。输出描述:可能有多组测试数据,对于每组数据, 输出”Yes!”表示矩阵为对称矩阵。 输出”No
2017-05-30 20:28:34 15620
原创 输出日期
写在起那面:看到工作室的小伙伴们都有了自己的博客,我想要跟紧党和人民的步伐,想起在知乎上看到一个话题,当一个程序媛是一个怎样的体验,看到一个个回答说:写的一手好bug,坑的一手好队友,但是,那~一~定~不~四~我~,好滴,就这样,以一篇算法开启自己的博客之旅吧~~~
2017-05-26 14:13:41 490 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人