Java编程题——【牛客】重排链表 重排链表输入: {1,2,3,4}输出:{1,4,2,3}方法一:将链表存储在ArrayList中, 然后利用双指针,一个从前,一个从后对链表进行重排.代码实现:// 重排序 public void reorderList(ListNode head){ if (head == null){ return; } List<ListNode> list = new ArrayList<
网络原理——TCP/IP协议 网络原理——TCP/IP协议TCP/IP协议UDP协议TCP协议TCP:TCP原理/机制总结TCP/IP协议UDP协议UDP协议端格式:DUP特点:无连接: 知道对端的IP和端口号就直接进行传输,不需要建立连接;不可靠: 没有确定机制,没有重传机制,如果因为网络故障该段无法发送到对方,UDP协议层也不会给应用层返回任何错误信息;面向数据报: 不能够灵活的控制读写数据的次数和数量( 只能一次发送,一次接受 );面向数据报: 应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也
数据结构——排序 排序目录排序冒泡排序:插入排序:希尔排序:选择排序:==快速排序==:==归并排序==:堆排序:冒泡排序:在无序区间,通过相邻的数比较,将最大的数冒泡到无序区间的最后,重复前面的步骤,直到所有元素都已排序完。public class MySort { // 冒泡排序: public static void bubbleSort(int[] arr){ int bound = 0; for (;bound < arr.length; ++bound
数据结构——栈和队列 栈栈:是一种特殊的线性表,遵守**后进先出LIFO(Last In First Out)**原则。表的尾端称为栈顶,表头端称为栈底。示例:入栈:1,2,3,4,5,6…生活中的栈的例子:1.垒砖,砖块总是放置在已经垒好的砖块上面;2.洗盘子,洗好的盘子总是逐个往上叠放在已经洗好的盘子上…实现(1) 顺序表实现:使用尾插操作表示 “入栈 ”;使用尾删操作表示 “出栈 ”;使用根据下标去元素的操作表示 “取栈顶元素 ”。// 使用顺序表实现:public c
Java编程题——计算质数个数 题目要求:统计所有小于非负整数 n 的质数的个数质数:除了 1 和 它本身外不被其他整数整除(1不是质数)有关于质数的题目我们在生活中很常见,而大多数首先想到的是暴力法解题代码示例:方法一:class Solution{ public int countPrimes(int n) { int count = 0; for(int i = 0; i < n; i++){ if(isPrime(i)){ .
数据结构——链表(插入&删除) 链表与顺序表相比链表最大的区别是其元素不是在连续的内存空间上。用Node类来表示:public class Node { public int val; // 元素 public Node next; // 指向下一结点的位置 public Node(int val){ this.val = val; }}下面我们先来建立一条链表:public class Main { public static Node createList
Java编程题——简单实现List操作 实现一些List的基本操作:package List;public class Node { public int val; public Node next; public Node(int val) { this.val = val; } @Override public String toString() { return " " + this.val; }}package List;publi
Java编程题——模拟实现ArrayList 模拟实现一个自己的ArrayList。代码示例:public class MyArrayList { //属性 private String[] data = null; private int size = 0; // 有效元素个数 private int capacity = 100; // 最大容纳元素个数 public MyArrayList(){ data = new String[capacity]; } // 扩
Java版简易房屋购买系统 用 Java 编写一个简单的 房屋买卖系统,并实现增加、删除、浏览、购买、退订功能。首先创建项目:下面依次实现各类的功能:// 存放房屋信息package system;public class House { private String address; // 门牌号 private double area; // 面积 private String type; // 户型 private boolean state = false; // 状态:售出
Java编程题——长按键入 题目:925.长按键入你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True在编写代码之前,先要明白这里的长按字符情况可能出现哪几种:第 1 种:(无新字符出现,a、c被长按)name = “abcd”typed = “aabccd”这是首先会想到的情况第 2 种( name 中带有重复字符 e.
Java笔记——面向对象编程(继承&组合) 面向对象编程——继承继承定义:目的:代码重用、类重用 (吧多个类之间的共同的代码提取出来,放到父类中)概念:父类/基类/超类 ; 子类/派生类(继承父类的类)关键字:extends (扩展)语法代码示例://父类public class Animal { public String name; public void eat(String food){ System.out.println(name + "正在吃" + food); }
Java编程题——合并有序数组 题目:给定两个有序整数数组nums1 和 nums2, nums2 合并到 nums1 中, 使得 nums1 成为一个有序数组。刚拿到题时,首先想到的是从前向后依次比较大小,逐个将nums2中的数值加入到nums1中,但实际写起来发现非常麻烦,每进行一次插入数值后都要把nums1中的所有大于nums2中某数值的数往后移动一位。因此,采用从后向前的方式将nums2中数值插入。由于两组都是有序数组,所以只需要依次比较两个数组“最后一位”的大小关系,放置完后向前移动一位。文字有点繁琐,下面画图来大概.
Java编程题——返回单词长度 题目 ( 1 ):给定一个仅包含大小写字母和空格’ '的字符,返回其最后一个单词的长度,如果不存在最后一个单词,请返回零package Homework;public class test04 { public static void main(String[] args) { String str1 = "I like swimming"; String str2 = "I have an apple "; System.out.pri.
Java编程题——实现split、compareTo、contains、indexOf、replace split( )public class mySplit { public static void main(String[] args) { String str = "1,2,3,4,5,6,7,8"; mySplitFunc(str); } static void mySplitFunc(String str){ for (int i = 0; i < str.length(); i++){ ch
Java笔记——String类 StringString的创建//方法一String str1 = "hello";//方法二String str2 = new String("hello");//方法三char[] arr = {'a','b','c'};String str3 = new String(arr);字符串比较a. 比较相等.equal==String 使用 == 比较的不是两个字符串的内容,而是比较两个引用是否是指向同一个对象;b. 比较大小按照字典序判断大小:先
Java编程题——大写小写字母转化 题目:将字符串中的大写字母转化成小写字母之后返回新得字符串public class test04 { public static void main(String[] args) { String str = "shuYTgsUHjskY"; Solution sl = new Solution(); System.out.println(sl.toLowerCase(str)); } //方法1 static cla.
Java笔记——类和对象 类和对象类的定义class Student{ public String sno; //成员属性 public String name; public String sex; public void learn() { //成员方法 System.out.println("学习"); } public void sleep() { System.out.println("睡觉"); }}class为定义类的关键字;Student 为类名;{ … } 中为类的