算法
花纹纹
没事就该多和热水,多敲代码
展开
-
输出日期
写在起那面:看到工作室的小伙伴们都有了自己的博客,我想要跟紧党和人民的步伐,想起在知乎上看到一个话题,当一个程序媛是一个怎样的体验,看到一个个回答说:写的一手好bug,坑的一手好队友,但是,那~一~定~不~四~我~,好滴,就这样,以一篇算法开启自己的博客之旅吧~~~原创 2017-05-26 14:13:41 · 486 阅读 · 1 评论 -
剑指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 · 281 阅读 · 0 评论 -
牛客网 剑指offer-矩形覆盖
问题描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 问题分析: 看了别人通过的代码分析,有一个比较易懂,在此把链接如下。 链接:https://www.nowcoder.com/questionTerminal/72a5a919508a4251859fb2cfb987a0e6 来源:牛客网代码如原创 2017-09-22 08:52:46 · 226 阅读 · 0 评论 -
牛客网 剑指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 · 399 阅读 · 0 评论 -
牛客网 剑指offer-跳台阶
问题描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。写出前四项之后,就会发现这是一个斐波那契数列,该项等于前两项之和,代码如下: public class Solution { public int JumpFloor(int target) { if(target == 0){ ret原创 2017-09-21 15:08:12 · 436 阅读 · 0 评论 -
剑指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 · 246 阅读 · 0 评论 -
剑指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 · 213 阅读 · 0 评论 -
剑指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 · 191 阅读 · 0 评论 -
牛客网 剑指offer-反转列表
题目描述: 输入一个链表,反转链表后,输出链表的所有元素。代码如下:public class Solution { public ListNode ReserverList(ListNode head){ if(head == null) return null; ListNode pre = null; ListNo原创 2017-09-26 15:20:13 · 254 阅读 · 0 评论 -
牛客网 剑指offer-调整数组顺序使奇数位于偶数前面
问题描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 问题分析:这道题是我看通过的代码做出来的,在看了别人的思路之后,有一种恍然大悟的感觉,同时,也感到编程的乐趣。在这里主要分析两种思路: 方法一:类似冒泡算法,前偶后奇数就交换 代码如下:public cl原创 2017-09-24 19:32:45 · 213 阅读 · 0 评论 -
牛客网 剑指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 · 310 阅读 · 0 评论 -
牛客网 剑指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 · 342 阅读 · 0 评论 -
牛客网 剑指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 · 372 阅读 · 0 评论 -
打印日历
这篇的算法是打印日历,可能对许多小伙伴来说有点困难,但是,笔者还是想让大家硬着头皮看完,毕竟,学会这个算法之后,小伙伴们就不用买日历了~~~好了,一起来看代码package printdate;import java.util.Scanner;/** * 编写一个程序,显示给定年月的日历。 * * Created by 郑文华 on 2017/6/1. */public class Pri原创 2017-06-01 21:31:38 · 725 阅读 · 0 评论 -
判断是否为对称矩阵
package juzheng;import java.util.Scanner;/** * 对称矩阵 * 题目描述 输入一个N维矩阵,判断是否对称。 输入描述:输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。 接下来的N行,每行包括N个数,表示N*N矩阵的元素。输出描述:可能有多组测试数据,对于每组数据, 输出”Yes!”表示矩阵为对称矩阵。 输出”No原创 2017-05-30 20:28:34 · 15598 阅读 · 0 评论 -
判断是否为守形数
import java.util.Scanner;/** * 题目描述 守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。 输入描述:输入包括1个整数N,2<=N<100。 输出描述:可能有多组测试数据,对于每组数据, 输出”Yes!”表示N是守形数。 输出”No!”表示N不是原创 2017-05-30 20:59:37 · 1717 阅读 · 0 评论 -
剑指offer-二叉树的镜像
题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \原创 2017-10-12 19:38:44 · 280 阅读 · 0 评论