- 博客(58)
- 收藏
- 关注
原创 数组中出现次数超过数组长度一半的数字-Java
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路:思路一:定义map,使用<数字,次数>映射关系,最后统计每个字符出现的次数。代码实现:import java.util.Map;import java.util.HashMap;public class Solution { public int
2020-08-03 16:41:29 412
原创 Java爬取github网站
文章目录项目背景核心功能开发环境主要流程模块组成核心技术项目测试项目背景1.什么是爬虫爬虫就是一个模拟人类的请求网络行为的程序。可以自动请求网页,并把数据抓取下来,然后使用一定的规则提取有价值的数据。2.项目目标爬取github网站里awssome-java这个网页中核心功能开发环境主要流程模块组成核心技术项目测试...
2020-07-28 16:50:29 1379
原创 调整数组顺序使其奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。这道题原题是不需要保证奇偶数相对位置不变,我们可以先思考这个问题可以怎么解决。解决思路:分别定义left和right指向数组的第一个元素和最后一个元素,当left指向偶数,right指向奇数时交换两个元素就可以完成排序。但是现在我们所考虑的是要使得奇偶数相对位置不变不变,我们可以借鉴插入排序的思想。这里只需要定义left,则从左向右遍历
2020-07-21 16:59:54 302
原创 旋转数组的最小数字-Java
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。题目解析:本质上就是求最小值的问题方法一:直接遍历数组找出数组中的最小值按照要求,输入的数组要么是一个非递减排序的数组(最小值在最开始),要么是一个旋转(最小值在中间某个地方),而且,旋转之后有个特征,就是在遍历的时候,原始数组
2020-07-21 16:42:20 194
原创 二维数组中的查找-Java
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。核心思想明确:查找的本质是排除的过程最容易想到的解决思路就是:将二维数组遍历一遍,比较数组元素中的值是否有与目标值相等的元素,如果有则返回true,没有则返回false。代码如下:public class Solution { public boolean Find(int target, int []
2020-07-21 15:47:31 172
原创 Linux如何查看网络/进程信息
1.查看网络连接数和端口使用netstat命令:netstat -anp参数解释:-a:显示所有选项-t(tcp):仅显示tcp相关选项-u(udp):仅显示udp相关选项-n:拒绝显示别名,能显示数字的全部转化为数字-p:显示建立相关链接的程序名关键列解释:Proto:表示协议类型LocalAddress:表示本地地址ForeignAddress:表示对端地址State:表示状态(对于TCP有效,UDP没有状态概念)PID/Program name:表示对应的进程id和进程名.
2020-07-01 17:21:46 7946
原创 Linux查看CPU内存和系统版本
1.查看CPU信息查看CPU信息的方式很多,我们这里分为两种情况来处理1.1查看CPU基本硬件信息使用 cat /proc/cpuinfo1.2查看CPU使用状态信息top&&dstat方法一:输入top查看CPU使用情况,可以输入1,查看多核CPU使用情况方法二:dstat -c若不存在,可使用yum -y install dstat 安装2.查看内存信息2.1查看内存基本容量信息cat /proc/meminfo2.2查看内存运行空间信息free.
2020-07-01 16:49:41 287
原创 查看Linux硬盘空间使用情况
Linux命令之查看磁盘空间-df(disk free)1.1 简述df命令以磁盘分区为单位查看文件系统中磁盘空间的使用情况。1.2 高频选项df -h :使用人类可读的格式,这也是比较常见的查看方式df -i :查看分区inode使用情况1.3 df命令Filesystem:分区1K-blocks:总块数Used:已使用块数Available:可使用块数Use%:使用率Mounted on:挂载目录注意:used + Available 不一定等于1K-blocks,因为系..
2020-06-27 16:27:54 4805
原创 Java编程题-n个数里出现次数大于等于n/2的数
输入n个整数,输出出现次数大于等于数组长度一半的数。输入描述:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。输出描述:输出出现次数大于等于n/2的数。解题思路:str.split(" "):按照空格切分字符串Integer.valueOf(str):将数字字符串转为int统计数组中每个元素的个数,因为只有一个数的个数大于等于n/2,那么当个数满足要求时,返回当前数组中的元素就是我们所求的元素。代码实现:import java.util.S
2020-06-16 17:18:11 703
原创 Java编程题-用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路:其中一个栈 栈1用来作入队列;另一个栈2用来出队列,当栈1和栈2都不为空的时候,将栈1的元素出栈随后插入到栈2,最后,栈1和栈2都为空时,栈2出栈。代码实现:import java.util.Stack;public class Solution{ Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer>
2020-06-16 17:14:43 198
原创 Java编程题-神奇的口袋
有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入描述:输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的值。
2020-06-16 17:13:37 305
原创 Java编程题-删除公共字符
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They arestudents.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串解题思路:两层循环遍历假设将”They are students.”成为字符串1,”aeiou”成为字符串2.每便利到字符串2中的一个字符,就在字符串1中找到相同的字符,找到之后删除它,并将字符串1后面的字符串整体向前移动1位。代码实现:impo
2020-06-14 13:32:29 168
原创 Java编程题-买苹果
小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。输入描述:输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果输出描述:输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1解题思路:1.对数字特征进行分析。首先,6和8都是偶数。因此,能凑出的数也是偶数。那么程序中如果苹果总数是奇数时,可以直接返回-1;偶数个
2020-06-14 13:14:17 730
原创 Java编程题-合法括号序列判断
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。解题思路:看到这种括号匹配问题,第一个反应就应该是使用栈来解决。1.碰到")",就开始弹出栈顶元素的" ( ",如果此时栈为空,则返回false;2.碰到其他内容直接返回false;3.字符串结尾时,栈非空就返回false;代码示例:import java.util.Stack;public class Parenthesis{ public boo
2020-06-03 15:45:23 534
原创 Java编程题-字符串中找出连续最长的数字串
解题思路:本题关键是将一个完整的字符串转换为单个字符,以及判断字符是否为数字。我们可以用max来记录经过的数字长度最大值;count表示数字计数器,当为字母是,重置count=0;end表示数字尾部,每次满足是数字时,对max进行判断,当max<count时,更新max和end。代码实现:import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanne
2020-06-03 15:31:15 813
原创 Java编程题-汽水瓶
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?解题思路:当有n个空瓶时候,我们设总共可以喝total瓶饮料,那么当n>2时,说明我们可以去换饮料喝。3个换一瓶,那么可
2020-06-03 15:11:24 499
原创 Java编程题-统计回文
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。解题思路:1.先写一个判断是否为回文的方法:分别从字符串前后开始遍历,如果每个字符都相等,则是回文2.再写一个方法进行统计插入是回文
2020-06-03 14:31:36 356 1
原创 Java-线程不安全的原因
不满足原子性、可见性以及有序性。1.原子性即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。我们把一段代码想象成一个房间,每个线程就是要进入这个房间的人。如果没有任何机制保证,A进入房间之后,还没有出来;B 是不是也可以进入房间,打断 A 在房间里的隐私。这个就是不具备原子性的。那我们应该如何解决这个问题呢?只要给房间加一把锁,A 进去就把门锁上,其...
2020-04-13 15:49:46 771
原创 力扣232.用栈实现队列-Java
题目描述:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。public class MyQueue { private int[] data = new int[100]; //[head.tail) private int h...
2020-02-28 16:08:26 188
原创 力扣225.用队列实现栈-Java
题目描述:使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 ...
2020-02-28 15:22:10 194
原创 力扣20.有效的括号-Java
题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。//判断括号是否匹配问题 public boolean isValid(String s){ //1.创建一个栈 Stack<...
2020-02-28 14:38:19 371
原创 Java--二叉树创建字符串
private StringBuilder stringBuilder = new StringBuilder();public String tree2Str(TreeNode t){if(t == null){return “”;tree2StrHelper(t);stringBuilder.deleteCharAt(0);stringBuilder.deleteCharAt(st...
2019-11-25 22:10:56 380
原创 Java--根据一棵树的先序遍历和中序遍历构建二叉树
private int index = 0; public TreeNode buildTree(int[] preorder,int[] inorder){ index = 0; return buildTreeHelper(preorder,inorder,0,inorder.length); } private TreeNode bui...
2019-11-25 22:02:59 475
原创 Java--二叉搜索树转换为排序双向链表
二叉搜索树是一种特殊的二叉树,左子树的所有结点小于根节点,右子树的所有结点大于根节点。此题使用中序遍历即可得到有序序列把相邻的元素互相指向,left指向前一个元素,right指向后一个元素1.判定特殊情况,如果为空,则返回null2.递归把左子树变成双向链表,并返回这个链表的第一个结点3.如果左侧链表的头结点不为空,当前左侧链表的尾巴找到,让左侧链表的尾结点和当前root结点相互指向4...
2019-11-25 21:46:20 469 2
原创 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
借助一个辅助函数, 在 root 中递归查找 p 和 q.设定辅助函数的返回值, 如果找到返回 1(找到一个或者两个都算), 没找到 返回 0这个递归查找的过程进一步拆解开. 递归在左子树中查找 + 递归在右子树中查找 + 对比根节点如果这三个位置中, 有两个地方找到了, 这个当前节点就是要找的最近公共祖先 private TreeNode lca = null; publi...
2019-11-25 21:28:00 563
原创 Java--二叉树的分层遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。import java.util.ArrayList;import java.util.List;class TreeNode{ int val; TreeNode left; TreeNode right;}public class TreeDemo { //二叉树的分层...
2019-11-25 21:03:37 272
原创 Java--二叉树的构建和遍历问题
题目描述:编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。public class TreeBuild { static class TreeNode{ public...
2019-11-25 20:29:22 109
原创 一个简单的发扑克牌游戏
给三名玩家轮流发5张牌,并且可以重洗。import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Random;class Card{ public int rank;//牌面值 public String suit;//花色 @Overri...
2019-11-11 23:09:09 288
原创 泛型和包装类的语法
1.泛型类的定义1.1语法:class 泛型类名称<类型形参列表>{ //这里可以使用类型参数 } class ClassName<T1,T2,...Tn>{ }class 泛型类名称<类型形参列表> extends 继承类/* 这里可以使用类型参数 */ { // 这里可以使用类型参数 }class ClassName<T1, T2, ....
2019-11-10 15:51:23 215 1
原创 树相关的基本概念
树是一种非线性的数据结构,它是由n(n>=0)有限结点组成一个具有层次关系的集合。它具有以下特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点以外,每个子结点可以分为多个不相交的子树。**结点的度:**一个结点含有的子树的个数为该结点的度;**树的度:**一棵树中,最大的结点的度称为树的度;**叶子结点或终端结点:**度为0的结点...
2019-11-10 13:15:27 139
原创 二叉树的先序, 中序, 后序遍历, 求二叉树节点个数, 求二叉树叶子节点个数.
class Node{ char val; Node left; Node right; public Node(char val) { this.val = val; } @Override public String toString() { return "Node{" + ...
2019-11-06 21:57:51 1714
原创 Java-实现Map接口
代码示例:import java.util.HashMap;import java.util.Map;public class Demo01 { public static void main(String[] args){ Map<String,String> map = new HashMap<>(); System.ou...
2019-11-05 20:17:41 160
原创 Java-实现Collection接口
1.Collection:用来存储和管一组对象objects,这些对象一般被称为元素elements1.Set:元素不能重复,背后隐藏着查找/搜索语句1.SortedSet:一组有序的不能重复的元素2.List:线性结构3.Queue:队列4.Deque:双端队列代码示例:public class Demo { public static void main(String[]...
2019-11-05 20:03:34 210
原创 Java-异常的相关语法
异常:就是指程序在运行时**出现错误时通知调用者的一种机制。运行时指的是程序已编译通过得到了class文件,再由JVM执行过程中出现的错误。防御式编程:错误在代码中是客观存在的,因此我们要让程序出现问题的时候及时通知程序员。我们有两种方式:**LYBY:**在操作之前就做足充分的检查**EAFP:**先操作,遇到问题再处理异常的基本用法:try{有可能出现异常的语句;}[catc...
2019-11-05 11:37:20 159
原创 Java-面向对象的相关内容描述
1.包包是组织类的一种方式。使用包的主要目的是保证类的唯一性。例如,你在代码中写了一个Test类,然后你的同事也可能写一个Test类,如果出现两个同名的类,就会导致冲突,导致代码不能编译通过。1)导入包中的类Java中已经提供了很多现成的类供我们使用。例如可以用java.util.Date 这种方式引入java.util这个包中的类,但是这种写法比较麻烦,可以直接用import语句导入包。...
2019-11-02 15:18:23 241 1
原创 双向链表的相关操作
class DLinkedNode {public int val = 0;public DLinkedNode prev = null;public DLinkedNode next = null;public DLinkedNode(int val){this.val = val;}}public class DLinkedList{private DLinkedNode h...
2019-10-21 21:57:38 171
原创 Java-有关链表知识的题目练习
class ListNode{int val;ListNode next;ListNode(int x) {val = x;}}//删除链表中等于给定值 val 的所有节点public class Demo01 {public ListNode removeElements(ListNode head,int val){//1.链表为空的情况if(head...
2019-10-15 19:47:05 182
原创 Java-链表的基本操作(增、删、查、改)
import sun.awt.image.ImageWatched;class LinkedNode{public int data = 0;public LinkedNode next = null;public LinkedNode(int data){this.data = data;}}public class LinkedList {private LinkedNode...
2019-10-10 19:13:09 108
原创 Java-顺序表的基础操作(增、删、改、查等)
import java.util.Arrays;public class SeqList {private int[] data = new int[10];//这个数组的最大容量是10,初始情况下,这10个元素并不都是有效元素private int size = 0;//size表示当前数组中有多少个有效元素public void display(){//System.out.prin...
2019-10-08 10:33:08 233
原创 Java-实现交换两个变量的值。要求:需要交换实参的值。
public class Exchange {public int num1;public int num2;public void exchange(){int tmp = num1;int num1 = num2;int num2 = tmp;}}import java.util.Scanner;public class Test {public static void ...
2019-10-07 19:19:55 144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人