- 博客(37)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 剑指offer-16-将字符串转成整数
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0public class Solution { public int StrToInt(String str) { if(str.eq
2017-08-19 22:41:31
519
原创 剑指offer-17- 二叉树后序遍历
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。分析:在后序遍历得到的序列里,最后一个数是树的根节点。前面的数分为两个部分,比根节点小的是左子树节点,比根节点大的是右子树节点。然后用同样的方法来确定数组的每一个部分对应的子树的结构。public class Solution {
2017-08-15 17:02:57
434
原创 剑指offer-15 二叉树的镜像
操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 51、交换根节点的左右子
2017-08-14 22:47:17
413
原创 剑指offer-14 判断树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val
2017-08-14 22:30:53
400
原创 将一个正整数分解质因数
题目:将一个正整数分解质因数.例如:输入60,打印出60=2 * 2 * 3 * 5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n > k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)
2017-07-13 11:04:31
1442
原创 剑指offer-13-反转链表
题目描述:输入一个链表,反转链表后,输出链表的所有元素。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/publicclass Solution {
2017-07-08 11:03:14
442
原创 剑指offer-12-矩阵覆盖
题目描述:可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?分析:1、当 n=1时候,result = 1;2、当 n =2时候,result = 23、当n=3时候,result = 3继续往下推会得到f(n) = f(n-1) +f(n-2)(n>2).
2017-07-06 15:08:31
502
原创 剑指offer-11 斐波那契数列
题目描述:斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n public int Fibonacci(int n) { int F1 = 1; int F2 = 1; int F = 0; if(n == 1 || n==2){ return F=F1;
2017-06-29 11:09:43
456
原创 剑指offer-10 旋转数组
题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:采用二分法解答这个问题, mid = low + (high - low)/2 需要考虑
2017-06-29 10:52:14
569
原创 遍历二叉树
1、二叉树的遍历指的是从根结点出发,按照某种次序依次访问二叉树中的所有节点,使得每一个结点被访问一次且仅被访问一次。2、二叉树的遍历方法①前序遍历:先访问根结点,然后前序遍历左子树,再前序遍历右子树。②中序遍历:若树为空,则空操作返回,否则从根结点开始(并不是先访问根结点),中序遍历根节点的左子树,然后是访问根结点,最后中序遍历右子树。③后序遍历:若树为空,则空操作返回,否则从
2017-06-20 17:25:49
428
原创 offer-08-重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。或者是求其后序遍历。/** * Definition for binary tree * public class TreeNod
2017-06-20 16:53:07
435
原创 eclipse链接数据库
1、需要导入jar包,这个网上一大堆。2、在运行java程序(链接数据库)的时候要求select java Application,这个的原因是找不到工程的main函数。解决方法如下:在run configuration--Javaapplication中新建一个configuration。在右侧Main标签下,project对应工程名字,Main class中填入包含main函数的类(包
2017-06-19 19:45:25
1716
原创 剑指offer-07-从上往下打印出二叉树的每个节点,同层节点从左至右打印。
题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }} pub
2017-06-16 20:05:36
843
原创 剑指offer-06
题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)package swordRefersToOffer;import java.u
2017-06-16 19:44:47
410
原创 剑指offer-05-顺时针打印数组
题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.package swordRefersToOffer;import java.util.Scanner;public c
2017-06-16 17:24:45
468
原创 剑指offer-04-输出二进制数中的1的个数
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。package swordRefersToOffer;import java.util.Scanner;public class FindBinary { public static void main(String []args){ Scanner sc = new Scanner(Syst
2017-06-15 20:44:24
439
原创 剑指offer-03-输入一个链表,从尾到头打印链表每个节点的值。
题目描述:输入一个链表,从尾到头打印链表每个节点的值。import java.util.*;/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;*
2017-06-15 15:47:18
490
原创 剑指offer-02-将一个字符串中的空格替换成“%20”
题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { if(str == null){ r
2017-06-15 15:17:56
405
原创 剑指offer-01-判断数组中是否含有某整数
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:从左下角开始遍历。逐个比较。public class Solution { public boolean Find(int target, int [][] array) {
2017-06-15 14:51:26
448
原创 去除数组中为零的项
package exercise;/* * 去除数组中为零的项*/public class Demo2 { public static void main(String[] args) { int oldArray[] = new int[]{1,2,3,4,0,0,0,0,0,5,6,0,7,0,8,0,9}; int newArray[
2017-05-25 11:06:50
1679
原创 二维数组的转置
package exercise;/* * 二维数组的转置 * 转置的前提是数组的行和列必须相等。 */public class Demo1 { public static void main(String[] args) { int data[][] = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
2017-05-25 10:47:22
3784
转载 详述 Cookie 与 Session 的区别
Cookie 是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Mechanism 是通用 cookie 规范。网络服务器用 HTTP 头向客户端发送 cookie,在客户终端,浏览器解析这些 cookie 并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些 cookie.具体来说,coo
2017-05-14 14:47:37
466
原创 Java中1000==1000为false而100==100为true
public class Test { public static void main(String[] args) { Integer a = 1000,b=1000; System.out.println(a == b); //false Integer c = 100,d=100; System.out.
2017-04-16 12:05:06
1689
原创 输入一个正整数,按照从小到大的顺序输出它的所有质数的因子
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )最后一个数后面也要有空格输入描述:输入一个long型整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。import java.util.*;public class Main{ publi
2017-04-15 22:31:40
18473
2
原创 安装matlab出现Error 1935错误的解决办法。
1)通过regedit进入注册表(运行+regedit.exe)2)修改HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control3)将子键“RegistrySizeLimit”原来的值改为Value: ffffffff(4294967295)(DWORD,16进制下),8个f。(如果没有就新建立一个,双击再设置值。)4)重新启动5)以管
2017-03-22 15:58:13
8045
原创 拆分字符串
连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。import java.util.Scanner;public class Main{ public static void split(String s){ while(s.length() >= 8){
2017-02-25 15:57:48
647
原创 随机数去重排序
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机
2017-02-18 11:28:33
1053
原创 判断是否为变形词的分析
【题目】 给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1和str2互为变形词。请实现函数判断两个字符串是否互为变形词。【举例】 str1="123",str2="231",返回true。 str1="123",str2="2331",返回false。import java.util.Scann
2017-02-17 21:03:04
895
原创 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写.
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner (System.in); String str1 = sc.nextLine(); String str2 =
2017-02-17 16:42:45
2899
原创 计算字符串最后一盒单词的长度,单词以空格隔开。
输入描述:一行字符串,非空,长度小于5000.输出描述:整数N,最后一个单词的长度。import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s
2017-02-17 16:11:51
1128
原创 最大值减去最小值小于或者等于num的子数组数量
题目:给定数组arr和整数num,返回有多少个子数组满足子数组中的最大值减去最小值小于等于num的情况。解法:1、找出arr数组的所有子数组。 2、遍历其中,寻得最大值和最小值。 3、判断是否满足条件,计数。
2016-12-05 20:34:51
1398
原创 求s = a+aa+aaa+aaaa+a......a的值,其中a是一个数字
求s = a+aa+aaa+aaaa+a......a的值,其中a是一个数字。import java.util.Scanner;public class Test05 { public static void main(String[] args) { long a,b = 0,sum = 0; Scanner s = new
2016-10-20 11:27:03
3157
原创 求两个整数的最大公约数
要求:方法传两个正整型参数,返回值就是他们的最大公约数,尽可能保证性能。第一:暴力枚举 时间复杂度是O(min(a, b)))第二:辗转相除法--欧几里得算法---时间复杂度不太好计算,可以近似为O(log(max(a, b))),但是取模运算性能较差。该算法基于一个定理:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。-
2016-10-09 21:01:36
1564
原创 1、栈和队列
1、基本概念:栈(stack)是一种后进先出(last in first out,LIFO)的数据结构。队列(queue)是一种先进先出(first in first out,FIFO)的结构。如下图所示:2、实现:(1)栈(stack)的链表实现首先定义一个内部类来保存每一个链表的节点,该节点包括当前的值以及指向下一个的值,然后建立一个节点保存位于
2016-10-08 16:56:13
719
OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
2019-08-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人