
java
TouchYH
一起进步啊
展开
-
Exception in thread "main" java.lang.ArrayStoreException: java.lang.String
记录一个报错Exception in thread “main” java.lang.ArrayStoreException: java.lang.StringArrayStoreException(数组存储异常)先说我遇到问题后的解决办法。上面自动导入了一个包而我需要的是java.lang.Object,而这是使用Object时默认的使用包,只要把上面导入的import删除掉即可。对于Object我目前没有很深入的研究,抱歉不能给出深入的理解,如果能够提醒到你的注意,解决问题,我的目的就达到原创 2020-05-21 22:52:27 · 766 阅读 · 2 评论 -
剑指offer || 整数中1出现的次数
题目: 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。思路: ①作一个判断。 ②用for()循环将所有数进行一次遍历。 ③这里我用到的方法是,将每个值不...原创 2018-06-03 01:54:28 · 129 阅读 · 0 评论 -
剑指offer | 丑数
题目: 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路: ①还是一个判断过程。 ②把1作为开始,就是数组中的第一个值。 ③把每一个值都去乘以2、3、5,找到最小值,加到数组中。 具体方法和细节看代码吧public class Solution {...原创 2018-06-04 00:25:27 · 171 阅读 · 0 评论 -
剑指offer | 第一个只出现一次的字符
题目: 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置。思路: ①一个判断。 ②遍历每一个字符与其它字符是否相等,如果相等,计数加一。 ③如果计数值为1,返回这个字符所在位置即可。注意: 如果不成功时,返回值为-1。 如果某个字符只出现一次,计数值为1,因为这里没有跳过与自身的比较,计数值最小为1。pu...原创 2018-06-06 00:29:04 · 136 阅读 · 0 评论 -
一次彻底的练习
这里写一些自己还不太清楚的小问题。二维数组的行或列的长度如何表示? 行 array.length; 列 array[ ] .length;新建一个StringBuffer(),记得加括号。 StringBuffer newstr = new StringBuffer(); 字符串的长度,记得加括号。 str.length() ;堆栈和链表的数据存入与取出。Integer...原创 2018-05-30 00:57:35 · 123 阅读 · 0 评论 -
剑指offer | 重建二叉树
题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。第一次接触二叉树,很是不熟悉,代码中做了小小的笔记,等自己日后慢慢研究吧。/** * Definition for binary tree *...原创 2018-05-30 01:02:14 · 129 阅读 · 0 评论 -
剑指offer | 数字在排序数组中出现的次数
题目: 统计一个数字在排序数组中出现的次数。思路: 做一个for循环,遍历每一个值,如果该值等于k,就count++,最后输出就好了。public class Solution { public int GetNumberOfK(int [] array , int k) { int count = 0 ; for(int i = 0 ; i &l...原创 2018-06-06 22:24:22 · 115 阅读 · 0 评论 -
剑指offer | 两个链表的第一个公共结点
题目: 输入两个链表,找出它们的第一个公共结点。思路: 思路都在代码里了/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { publi...原创 2018-06-07 22:43:04 · 147 阅读 · 0 评论 -
剑指offer | 数字在排序数组中出现的次数
题目: 统计一个数字在排序数组中出现的次数。public class Solution { public int GetNumberOfK(int [] array , int k) { int count = 0 ;//计数 for(int i = 0 ; i < array.length ; i++){ if(array[...原创 2018-06-08 00:38:59 · 205 阅读 · 0 评论 -
剑指offer | 二叉树的深度
题目: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。注意: 值得注意的就是int值最开始的值是0,再通过一个递归和递归中的+1,每当还有分支时,就加1,再进入递归,这样就可以实现长度的计数。/**public class TreeNode { int val = 0; TreeNode lef...原创 2018-06-08 00:44:03 · 114 阅读 · 0 评论 -
剑指offer | 平衡二叉树
题目: 输入一棵二叉树,判断该二叉树是否是平衡二叉树。注意: getHeight这个方法同“二叉树的深度”方法一样,整体也是一个递归算法。public class Solution { public boolean IsBalanced_Solution(TreeNode root) { if (root == null){//一个判断 ...原创 2018-06-08 00:55:52 · 135 阅读 · 0 评论 -
剑指offer | 数组中只出现一次的数字
题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。注意: 这里要找到俩个只出现一次的数字,找第一个很好找,第二个就会碰到各种问题,所以我们再建立一个数组numtem[ ] 方便找到任何个只出现一次的数字,只要变化数组长度即可。思路都在代码中了。//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]...原创 2018-06-08 01:09:22 · 125 阅读 · 0 评论 -
剑指offer | 最小的K个数
题目 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。我个人要注意有import java.util.ArrayList;//用到链表就得用这个包!还有就是冒泡排序中的这个值input.length-i-1思路: ①用一个判断条件,将个别情况排除在外。 ②写一个冒泡排序,将数组中的值从小到大以此排列。 ...原创 2018-06-01 23:55:37 · 166 阅读 · 0 评论 -
剑指offer | 数组中出现次数超过一半的数字
题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路: ①作一个判断条件。 ②作俩个for循环,用每一个值依次和后面的值作比较。 ③当这俩个值相等时,计数加一。 ④当计数值大于数组长度的一半时,输出这个值就好了。...原创 2018-06-02 00:06:09 · 170 阅读 · 0 评论 -
剑指offer || 连续子数组的最大和
题目: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度...原创 2018-06-03 01:31:51 · 211 阅读 · 0 评论 -
剑指offer | 递归数列
在这里整理一下递归数列的简单运用。 首先,写写用到的斐波那契数列 0 1 1 2 3 5 8 … 题目1:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。这是一个很正常的一个斐波那契数列,没有任何变化。public class Solution { public int Fibonacci(int n) { ...原创 2018-05-16 00:50:35 · 391 阅读 · 0 评论 -
剑指offer | 数组的整数次方
题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 这道题我们要注意的就是exponent与0的关系,用if()语句实现。引入变量i调整base相乘的次数,引入变量temp记录每次相乘的结果。还因注意double值的溢出。public class Solution { public double Power(doubl...原创 2018-05-17 02:55:13 · 164 阅读 · 0 评论 -
第一天学习java
一、eclipse快捷键ctrl + / 注释 ,用单行注释ctrl + shift + / 注释alt + / 自动出现后头的 ctrl + I 自动对齐 sysout 按alt + / :System.out.println(); ctrl + @ 按完之后放开,按l: 自动添加返回的东西了二、一些代码public class ...原创 2018-05-10 23:07:34 · 175 阅读 · 0 评论 -
小白最勤奋的一天
今天java总算是有大的飞跃,看视频但一直没有写过代码,写写遇到的问题吧!一、练习的小问题主方法: main + alt + /:实现main方法的快速框架。public static void main(String[] args) 下面是新建类的格式:类 类名 = new 类 (); 千万记得类后加括号,以及类的首字母大写。Basic1 basic = new Basi...原创 2018-05-12 01:28:08 · 158 阅读 · 1 评论 -
剑指offer | 二维数组中的查找
第一个Java程序,过得还算顺利。题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { public boolean Find(int target, int [][] array) { int m =...原创 2018-05-12 23:39:53 · 160 阅读 · 0 评论 -
剑指offer | 调整数组顺序
题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 小白在这里用了两种方法。 ①新定义了一个数组lastarray[ ] ,然后把array从头到尾遍历了一下,将遍历到的奇数,从头到尾放到lastarray中。再把array从尾到头遍历了一下,将遍历到的...原创 2018-05-19 01:33:15 · 260 阅读 · 0 评论 -
剑指offer | 代替空格
题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 这里有好多的问题,一些东西还是用的不习惯,下面一一说出吧。 ①先把字符串传入StringBuffer str,这里传入的字符串叫str(大佬们都这样叫,是一种惯例了吧)。 ②如果该字符串为空(null),那就返回一个空。 ③如果不...原创 2018-05-13 23:19:32 · 161 阅读 · 0 评论 -
剑指offer | 链表中倒数第K个节点
题目:输入一个链表,输出该链表中倒数第k个结点。是时候表演真正的技术了!不要以为java里没有指针。。。思路都在代码里面了,慢慢吸收。。。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }...原创 2018-05-19 22:40:12 · 110 阅读 · 0 评论 -
剑指offer | 反转链表
题目: 输入一个链表,反转链表后,输出链表的所有元素。这个是链表中的每一个节点指向的问题,我实在没有详细的思路,大家看看就好。。。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/publi...原创 2018-05-20 22:41:20 · 96 阅读 · 0 评论 -
剑指offer | 合并两个排序的链表
题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路都在代码里了,只要理解链表的指向关系这个就简单了。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; ...原创 2018-05-20 23:10:26 · 200 阅读 · 0 评论 -
剑指offer | 从尾到头打印链表
题目:输入一个链表,从尾到头打印链表每个节点的值。链表由字符、头、尾、指向关系组成。优点是插入和删除较为方便。 单向链表:只能从头开始一个一个往后找。堆栈:储存的数据结构,特点是先进的后出。 (队列:存储的数据结构,特点是先进的先出)只要将链表中的数一个一个存入堆栈中,再利用堆栈的特点,一个一个取出,就实现了从尾到头的打印。Stack stack = new Stack&amp;lt;...原创 2018-05-14 22:25:55 · 108 阅读 · 0 评论 -
剑指offer | 旋转数列中的最小数
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。这是一道给人成就感的题,尤其是对于我这种小白而言。说一下思路吧。①判断数组大小是否为0。一定注意是数组的大小...原创 2018-05-15 00:09:46 · 175 阅读 · 0 评论 -
遍历二叉树
二叉树的遍历分为以下三种: 先序遍历:遍历顺序规则为【根节点,左节点,右节点】 中序遍历:遍历顺序规则为【左节点,根节点,右节点】 后序遍历:遍历顺序规则为【左节点,右节点,根节点】 层序遍历:一层一层的遍历二叉树这里遍历时要注意,根节点、左节点、右节点,可以看成整个的部分,然后再在每个部分中一个节点一个节点的分析,要细致。这里主要用到函数的递归。运用递归函数可以极大的节省代码,要...原创 2018-05-22 00:49:12 · 177 阅读 · 0 评论 -
剑指offer | 用两个栈实现队列
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Solution { Stack&lt;Integer&gt; stack1 = new Stack&lt;Integer&gt;(); Stack&lt;Integer&gt; stack2 = new Stack...原创 2018-05-15 23:37:48 · 126 阅读 · 0 评论 -
剑指offer | 二进制中1的个数
题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 首先要知道什么是原码、反码、补码。在计算机中一个数用二进制表示,存储大小为1个字节(Byte)及8位(bit)。第一位用于表示数的正或负,0表示正,1表示负。那么就剩下了7位,可表示的大小为-127到+127。原码就是这个8位二进制数,反码是指除第一位不变,剩下的取反(0变1,1变0),补码是反码加一后的数。补码也就是存在计...原创 2018-05-17 02:48:00 · 177 阅读 · 0 评论