java基础
Mr_Curious_
自律、自律、自律、自律。要时刻保持奋发向上的精神面貌!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
60 把二叉树打印成多行(注意先后顺序)
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。public class Solution { ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer&原创 2018-05-31 10:34:39 · 141 阅读 · 0 评论 -
47 不用加减乘除做加法
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。public class Solution { public int Add(int num1,int num2) { if(num1 == 0) return num2; int a = (num1 & num2) <&l...原创 2018-05-28 11:08:21 · 176 阅读 · 0 评论 -
49 把字符串转换为整数(编码习惯)
题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入复制 +2147483647 1a33 输出复制 2147483647 0 首先,判断符号位。...原创 2018-05-28 11:24:25 · 581 阅读 · 0 评论 -
51 数组中重复数字
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 1、使用一个Hash表import java.util.*;public class Solution { ...原创 2018-05-29 09:46:16 · 208 阅读 · 0 评论 -
52 构建乘积数组
题目描述 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。最笨的方法: 如果能用除法的话,直接让A中所有数的乘积除以第i个数即可。不能的话就来次循环import java.util.ArrayList;public class Solution { ...原创 2018-05-29 10:16:25 · 214 阅读 · 0 评论 -
53 正则表达式匹配(略难)
题目描述 请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配注意了:必须先判断“ * ”的情况,然后再判断“ . ”的情况。==》案例:“aa”,“a*...原创 2018-05-29 15:12:34 · 332 阅读 · 0 评论 -
54 表示数值的字符串
题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。这道题不难,但是超级麻烦。这个和正则表达式一样,肯定得用递归的手段。 (1)首先判断第一位是不是符号位,在一般的数中,符号位不能出现两...原创 2018-05-30 10:35:39 · 250 阅读 · 0 评论 -
55 字符流中的第一个不重复的字符 (还没看其他方法)
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。import java.util.*;public class Solution { Has...原创 2018-05-30 11:20:04 · 157 阅读 · 0 评论 -
56 链表中环的入口节点
题目描述 一个链表中包含环,请找出该链表的环的入口结点。 使用hashimport java.util.*;public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { HashSet<ListNode> set = new HashSet(); ...原创 2018-05-30 11:48:39 · 289 阅读 · 2 评论 -
57 删除链表中重复的节点
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5首先一点,只要.next了,一定要判断当前节点是不是null; 如果开始的几个节点是一样的;;; 如果一样的节点数量超过两个;public原创 2018-05-30 15:23:26 · 169 阅读 · 0 评论 -
59 对称的二叉树 《剑指offer》 101. 对称二叉树《LeetCode》
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { ...原创 2018-05-31 09:21:25 · 213 阅读 · 0 评论 -
46 求1+2+3+...+n >>能对int类型使用
题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。这道题的基本做法有三种: (1)公式:n(n+1) / 2 ,也可以拆分 (2)递归,肯定需要if来做终结条件 (3)循环 但是(2)(3)在这里肯定不能用了。公式如果把括号拆开,除号改为右移的话,还可以使用。 注意:>>能...原创 2018-05-28 10:35:30 · 183 阅读 · 0 评论 -
62 序列化和反序列化 (反序列化的字符串构造一个二叉树——传入一个null节点 _层次遍历)
题目描述 请实现两个函数,分别用来序列化和反序列化二叉树import java.util.*;public class Solution { StringBuilder str = new StringBuilder(""); String Serialize(TreeNode root) { if(root == null) ...原创 2018-05-31 16:04:13 · 393 阅读 · 0 评论 -
63 二叉搜索树中的第k个节点(中序遍历递归_有返回值-无返回值;Java对象作为参数)
题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点。 例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。一开始,我打算使用count计数的方法,当count的数等于k的时候,就是要返回的结果。很容易就写出来了,但是总是报错。怎么回事呢? 发现改为数组就对了,前面两种有点懵。import java.util.*;public cla...原创 2018-05-31 16:48:58 · 345 阅读 · 0 评论 -
64 数据流中的中位数
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 最简单的方法,使用工具类对其进行排序,然后取其中位数即可。import java.util.*;public class Solution { ArrayList<Intege...原创 2018-05-31 17:09:04 · 254 阅读 · 0 评论 -
记忆性冷函数
Arrays.copyOf(原数组,长度)函数完成了数组的复制! arr = Arrays.copyOf(nums,nums.length);原创 2018-06-27 08:39:03 · 345 阅读 · 0 评论 -
关于浅拷贝和深拷贝
将一个对象的引用复制给另外一个对象,一共有三种方式。第一种方式是直接赋值(引用复制),第二种方式是浅拷贝,第三种是深拷贝。1、实现Clonable接口,覆盖并实现clone方法浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址...原创 2018-07-09 09:38:00 · 322 阅读 · 0 评论 -
关于Scanner
1、关于输入int后再输入String类型出错: 参考:https://www.cnblogs.com/xy-hong/p/7399975.html 2、连续输入n个正整数,输完后就卡了。 IntelliJ中是Ctrl+D表示EOF。Eclipse中默认是ctrl+Z表示EOF。按一下就好了...原创 2018-07-24 09:22:44 · 282 阅读 · 0 评论 -
java调用C++注意事项
https://www.cnblogs.com/xiaocainiao2hao/p/5619862.html https://blog.youkuaiyun.com/zhangshiting/article/details/53468158 注意:javah命令是在src目录下运行的。 https://blog.youkuaiyun.com/l1028386804/article/details/46604963 ...原创 2018-07-12 17:00:07 · 449 阅读 · 0 评论 -
16 反转链表
输入一个链表,反转链表后,输出新链表的表头。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Rever...原创 2018-08-10 09:51:57 · 216 阅读 · 0 评论 -
20180811总结
1、浅copy:是指对象里面的对象只复制了一个引用,除非自己手写一下。 2、知道后序遍历和中序遍历,求前序遍历: 对于前序遍历,第一个肯定是根节点;对于后序遍历,最后一个肯定是根节点;然后中序遍历中的那个节点左边是左子树,右边是右子树。 参考:https://www.cnblogs.com/liujinghuan/p/5842487.html 3、编程题第一道:瞌睡题:把每分钟的知识点都量...原创 2018-08-12 09:51:59 · 200 阅读 · 0 评论 -
网易笔试题总结
1、瞌睡:已知小易对一堂课每分钟知识点的感兴趣程度,并以分数量化,以及他在这堂课上每分钟是否会睡着,你可以叫醒他一次,这会让他在接下来的k分钟内保持清醒。求一种方案最大化他听到知识点的最大兴趣值。第一行:输入n,k(1<=n,k<10^5),表示这堂课持续的时间,以及叫醒小易能让他保持清醒的时间。第二行:n个数,a1,a2,a3..an(1--10^4)表示对每分钟知识点的原创 2018-08-14 22:03:23 · 724 阅读 · 0 评论 -
41 和为S的两个数字
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。固定第一个数,查看sum减去这个数是否在这个数组里面!import java.util.*;public class Solution { public ArrayList&lt...原创 2018-05-17 19:18:33 · 183 阅读 · 0 评论 -
303. 区域和检索 - 不可变
一、题意 Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.Example: Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0, 2) -> 1 sumRange(2, 5) -> ...原创 2018-04-15 22:13:37 · 1401 阅读 · 1 评论 -
27. 移除元素
一、题意 Given an array nums and a value val, remove all instances of that value in-place and return the new length.Do not allocate extra space for another array, you must do this by modifying the inpu...原创 2018-04-16 17:02:35 · 188 阅读 · 0 评论 -
35. 搜索插入位置
一、题意 Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.You may assume no duplicates in the ar...原创 2018-04-16 22:02:48 · 304 阅读 · 0 评论 -
67. 二进制求和
一、题意 给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1” 输出: “100” 示例 2:输入: a = “1010”, b = “1011” 输出: “10101”二、分析和解答 public String addBinary(String a, String b...原创 2018-04-17 19:05:59 · 575 阅读 · 0 评论 -
58. 最后一个单词的长度
1、题意 Given a string s consists of upper/lower-case alphabets and empty space characters ’ ‘, return the length of last word in the string.If the last word does not exist, return 0.Note: A word is...原创 2018-04-17 19:48:41 · 224 阅读 · 0 评论 -
二分查找小晋级
问题:二分查找、二分查找与快速排序、二分查找与双指针 1、最简单的二分查找代码(查找等于key的元素):#include <iostream>using namespace std;int binary_search(int arr[],int n,int key);int main(){ int arr[] = {0,1,2,2,2,5,6}; int...原创 2018-04-07 11:38:40 · 228 阅读 · 0 评论 -
37 两个链表的第一个公共节点
题目描述 输入两个链表,找出它们的第一个公共结点。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Fin...原创 2018-05-17 09:29:34 · 168 阅读 · 0 评论 -
38 数字在排序数组中出现的次数(改正了二分查找的等于号)
题目描述 统计一个数字在排序数组中出现的次数。 第一种方法:遍历一遍数组,统计一下. 第二种:二分查找public class Solution { public int minBinarySearch(int[] array,int k){ int low = 0,high = array.length - 1; while(low <= ...原创 2018-05-17 11:13:08 · 266 阅读 · 0 评论 -
39 二叉树的深度(层次遍历)
题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。public class Solution { public int TreeDepth(TreeNode root) { int leftDepth = 0; int rightDepth = 0; if(...原创 2018-05-17 14:36:46 · 2559 阅读 · 0 评论 -
40 数组中只出现一次的(两个)数字(i与i+1的比较之后的处理---根据二进制中的 位 划分两个数组)
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果import java.util.*;public class Solution { public void FindNumsAppearOnce(int [] array...原创 2018-05-17 17:17:55 · 241 阅读 · 0 评论 -
java选择题201803
1、InputStreamReader类中可处理 Unicode。 A、 InputStreanReader的构造函数: InputStreamReader(InputStream in) 创建一个使用默认字符集的 InputStreamReader。 InputStreamReader(InputStream in, Charset cs) 创建...原创 2018-03-07 19:16:27 · 270 阅读 · 0 评论 -
28 字符串排列(还差点,list包含、Arrays、Collections的sort)全排列
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。使用递归的方法,import java.util.*;public class Solution { p...原创 2018-05-06 09:59:29 · 422 阅读 · 0 评论 -
31 连续子数组的最大和 53. Maximum Subarray(最大子数组和)补充了dp 剑指offer
一、题目 Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1...原创 2018-03-01 20:24:44 · 216 阅读 · 0 评论 -
36 数组中的逆序对(归并排序)
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5原创 2018-05-14 09:21:08 · 229 阅读 · 0 评论 -
32 从1到n整数中1出现的次数(未完)
题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。1、最笨的方法:对于每个数进行1的个数的统计:public class Solution { ...原创 2018-05-07 21:30:33 · 134 阅读 · 0 评论 -
堆排序(大根堆)
import java.util.Arrays;public class HeapSort { public static void heapSort(int[] arr){ //创建堆 for(int i=arr.length/2-1;i>=0;i--){ adjustHeap(arr,i,arr.length); ...原创 2018-06-02 20:41:49 · 948 阅读 · 0 评论 -
41 和为S的连续正数序列
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和为S的连续正数序...原创 2018-05-27 11:38:18 · 162 阅读 · 0 评论
分享