java数据结构
机智的豆子
现在学习编程还在挣扎阶段,需要有恒心才能坚持下来。
展开
-
合并两个有序链表21
方法一:递归思路我们可以如下递归地定义两个链表里的 merge 操作(忽略边界情况,比如空链表等):也就是说,两个链表头部值较小的一个节点与剩下元素的 merge 操作结果合并。算法我们直接将以上递归过程建模,同时需要考虑边界情况。如果 l1 或者 l2 一开始就是空链表 ,那么没有任何操作需要合并,所以我们只需要返回非空链表。否则,我们要判断 l1 和 l2 哪一个链表的头节点的值更小,然后递归地决定下一个添加到结果里的节点。如果两个链表有一个为空,递归结束。class Solution {原创 2020-06-30 00:56:32 · 436 阅读 · 0 评论 -
移动零283
指针我们创建两个指针i和j,第一次遍历的时候指针j用来记录当前有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍历完后,j指针的下标就指向了最后一个非0元素下标。第二次遍历的时候,起始位置就从j开始到结束,将剩下的这段区域内的元素全部置为0。class Solution { public void moveZeroes(int[] nums) { if(nums==null) { return; } //第一次遍历的时候,j指针记录非0的个数,只要是非0的统原创 2020-06-30 00:37:15 · 135 阅读 · 0 评论 -
两数之和1
方法一:暴力法暴力法很简单,遍历每个元素 xx,并查找是否存在一个值与 target - xtarget−x 相等的目标元素。class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) {原创 2020-06-30 00:28:19 · 398 阅读 · 0 评论 -
Java数组-动态数组实现增删
实现代码package com.itmayiedu.pattern.day01;/** * @author Administrator */public class Array<E> { /** * 未查找到指定元素 */ private final int NOT_FOUND = -1; /** * 数组有效元素初始个...原创 2019-12-16 23:15:19 · 1013 阅读 · 0 评论 -
数组
这是对上次不完善的内容,进行补充,通过几遍的练习,发现出新的问题,所以这次对上次介绍的功能,进行改正和增强。 数组的增删改查:在强调一下,整数的默认值是0,即使不赋值,也可以使用,但是不推使用,可能会出现异常情况的产生。public class GroupDemo {// 初始化数组大小 int[] array = new int[50];// 有效元素个数 ...原创 2018-08-22 21:56:05 · 137 阅读 · 1 评论 -
链表
//定义结点,结点分为数据域和指针域两部分public class Node { // 数据域 public int data; // 指针域 public Node next; public Node(int value) { this.data = value; } public void display() { System.out.println(data + " "); }}/** ...原创 2018-07-05 15:42:12 · 139 阅读 · 0 评论 -
栈和队列
栈:先进后出,这个就比较类似上弹夹,先装进去的子弹,在后面才能被打出去栈实现的实例:/** * 栈的定义是先进后出,类似压弹夹 */public class MyStack { public static void main(String[] args) { MyStack ms = new MyStack(5); ms.push(23); ms.push(15); ms.push(46)...原创 2018-07-04 21:57:42 · 161 阅读 · 0 评论 -
冒泡排序、选择排序和插入排序的区别
这三种排序的时间级别: 冒泡排序:比较 (N-1)+(N-2)+...+2+1 = N*(N-1)/2=N2/2 交换 0——N2/2 = N2/4 总时间 3/4*N2 选择排序:比较 (N-1)+(N-2)+...+2+1 = N*(N-1)/2=N2/2 交换 0——3*(N-1)=3*(N-1)/2=3/2*N 总时间 N2/2+3/...原创 2018-07-04 11:28:04 · 21264 阅读 · 4 评论 -
JAVA版数据结构(数组)
1.了解java中的数组?定义: 数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素可以是任意类型(包括基本类型和引用类型),但同一个数组里只能存放类型相同的元素。创建数组大致包括如下步骤: 1.声明一个数组类型的引用变量,简称为数组变量; 2.用new语句构造数组的实例。new语句为数组分配内存,并且为数组中的每个元素赋予默认值; 3...原创 2018-07-02 21:18:18 · 240 阅读 · 0 评论