
java基础
Mr_Curious_
自律、自律、自律、自律。要时刻保持奋发向上的精神面貌!!!
展开
-
网易笔试题总结
1、瞌睡:已知小易对一堂课每分钟知识点的感兴趣程度,并以分数量化,以及他在这堂课上每分钟是否会睡着,你可以叫醒他一次,这会让他在接下来的k分钟内保持清醒。求一种方案最大化他听到知识点的最大兴趣值。第一行:输入n,k(1<=n,k<10^5),表示这堂课持续的时间,以及叫醒小易能让他保持清醒的时间。第二行:n个数,a1,a2,a3..an(1--10^4)表示对每分钟知识点的原创 2018-08-14 22:03:23 · 679 阅读 · 0 评论 -
57 删除链表中重复的节点
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5首先一点,只要.next了,一定要判断当前节点是不是null; 如果开始的几个节点是一样的;;; 如果一样的节点数量超过两个;public原创 2018-05-30 15:23:26 · 139 阅读 · 0 评论 -
56 链表中环的入口节点
题目描述 一个链表中包含环,请找出该链表的环的入口结点。 使用hashimport java.util.*;public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { HashSet<ListNode> set = new HashSet(); ...原创 2018-05-30 11:48:39 · 227 阅读 · 2 评论 -
55 字符流中的第一个不重复的字符 (还没看其他方法)
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。import java.util.*;public class Solution { Has...原创 2018-05-30 11:20:04 · 131 阅读 · 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 · 212 阅读 · 0 评论 -
53 正则表达式匹配(略难)
题目描述 请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配注意了:必须先判断“ * ”的情况,然后再判断“ . ”的情况。==》案例:“aa”,“a*...原创 2018-05-29 15:12:34 · 293 阅读 · 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 · 176 阅读 · 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 · 166 阅读 · 0 评论 -
49 把字符串转换为整数(编码习惯)
题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入复制 +2147483647 1a33 输出复制 2147483647 0 首先,判断符号位。...原创 2018-05-28 11:24:25 · 529 阅读 · 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 · 145 阅读 · 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 · 163 阅读 · 0 评论 -
60 把二叉树打印成多行(注意先后顺序)
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。public class Solution { ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer&原创 2018-05-31 10:34:39 · 106 阅读 · 0 评论 -
20180811总结
1、浅copy:是指对象里面的对象只复制了一个引用,除非自己手写一下。 2、知道后序遍历和中序遍历,求前序遍历: 对于前序遍历,第一个肯定是根节点;对于后序遍历,最后一个肯定是根节点;然后中序遍历中的那个节点左边是左子树,右边是右子树。 参考:https://www.cnblogs.com/liujinghuan/p/5842487.html 3、编程题第一道:瞌睡题:把每分钟的知识点都量...原创 2018-08-12 09:51:59 · 163 阅读 · 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 · 176 阅读 · 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 · 363 阅读 · 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 · 217 阅读 · 0 评论 -
关于浅拷贝和深拷贝
将一个对象的引用复制给另外一个对象,一共有三种方式。第一种方式是直接赋值(引用复制),第二种方式是浅拷贝,第三种是深拷贝。1、实现Clonable接口,覆盖并实现clone方法浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址...原创 2018-07-09 09:38:00 · 251 阅读 · 0 评论 -
记忆性冷函数
Arrays.copyOf(原数组,长度)函数完成了数组的复制! arr = Arrays.copyOf(nums,nums.length);原创 2018-06-27 08:39:03 · 296 阅读 · 0 评论 -
64 数据流中的中位数
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 最简单的方法,使用工具类对其进行排序,然后取其中位数即可。import java.util.*;public class Solution { ArrayList<Intege...原创 2018-05-31 17:09:04 · 209 阅读 · 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 · 309 阅读 · 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 · 341 阅读 · 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 · 146 阅读 · 0 评论 -
45 孩子们的游戏(圆圈中最后剩下的数——还差一种递归_约瑟夫环)
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数….这样下去….直到剩下...原创 2018-05-28 10:05:14 · 207 阅读 · 0 评论 -
39 二叉树的深度(层次遍历)
题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。public class Solution { public int TreeDepth(TreeNode root) { int leftDepth = 0; int rightDepth = 0; if(...原创 2018-05-17 14:36:46 · 2480 阅读 · 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 · 193 阅读 · 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 · 123 阅读 · 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 · 183 阅读 · 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 · 160 阅读 · 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 · 510 阅读 · 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 · 258 阅读 · 0 评论 -
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 · 144 阅读 · 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 · 1333 阅读 · 1 评论 -
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 · 187 阅读 · 0 评论 -
41 和为S的两个数字
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。固定第一个数,查看sum减去这个数是否在这个数组里面!import java.util.*;public class Solution { public ArrayList&lt...原创 2018-05-17 19:18:33 · 149 阅读 · 0 评论 -
44 扑克牌顺子
题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…..LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。...原创 2018-05-27 16:21:18 · 161 阅读 · 0 评论 -
42 反转单词顺序(任意子串的反转函数——字符数组转换为字符串)
题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? 关键是写一个能够将任...原创 2018-05-27 15:42:29 · 307 阅读 · 0 评论 -
42 左旋转字符串
题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!public class Solution { public String Lef...原创 2018-05-27 14:43:31 · 128 阅读 · 0 评论 -
41 和为S的连续正数序列
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和为S的连续正数序...原创 2018-05-27 11:38:18 · 123 阅读 · 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 · 891 阅读 · 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 · 101 阅读 · 0 评论