
算法与数据结构
哇塞大嘴好帅(DaZuiZui)
Vue Vine team member
梦想在代码里!
展开
-
Leetcode p1154一年有多少天
package leetcode; import java.util.Scanner; /** 一年中的第几天 */ public class P1154 { public static void main(String[] args) { //0为平年 1为闰年 int[][] a = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}}; Scanner scanner = new Scanner(原创 2021-11-27 22:36:30 · 302 阅读 · 0 评论 -
洛谷题库P1046 Java解法 作者:哇塞大嘴好帅(我爱大嘴网
洛谷题库P1046 Java解法 作者:哇塞大嘴好帅(我爱大嘴网) 哇塞大嘴好帅(我爱大嘴网) 哇塞大嘴好帥(我愛大嘴網) 0.参考题目 https://www.luogu.com.cn/problem/P1048 题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间原创 2021-11-14 20:55:11 · 176 阅读 · 0 评论 -
二分查找法 Binary Query 作者:哇塞:哇塞大嘴好帅(我爱大嘴网)
二分查找法 Binary Query 作者:哇塞:哇塞大嘴好帅(我爱大嘴网) 1.思路 二分查询要求数组的元素已经从小到大进行排序 数组中间的数和寻找的数作比较 演示视频:https://www.youtube.com/watch?v=sr_bR1WwcLY 查询中间值的算法 (minIndex + maxIndex) / 2 他的思路就是判断一个数组的中间下标的数据是否比我们要查找的值小,如果小那么他就在中间值+1到数组长度的区间重复上面的操作,判断中间下标的数据达还是小,如果中间原创 2021-10-29 19:09:19 · 148 阅读 · 0 评论 -
快速排序 Quick sort 作者:哇塞大嘴好帅(我爱大嘴网)
快速排序 Quick sort 作者:哇塞大嘴好帅(我爱大嘴网) 0.what is quick Sort 快速排序(Quick sort)是对冒泡排序算法的一种改进 1.首先设定一个基准值,通过该分界值将数组分成左右两部分 2.循环将大于或等于基准值的数据集中到数组右边,小于基准值的数据集中到数组的左边 3.基准值的左边和右边的数据进行重复1,2步骤的操作,也是取一个基准值将大于或等于基准值的数据集中到数组右边,小于基准值的数据集中到数组的左边。 4.当上述所完成后,一个排原创 2021-10-23 21:40:19 · 115 阅读 · 0 评论 -
冒泡排序法 Bubble sorting 作者:哇塞大嘴好帅(我爱大嘴网)
冒泡排序法 Bubble sorting 作者:哇塞大嘴好帅(我爱大嘴网) 1.思路 每一次循环将最大or最小的值放到数组的最后一个位置, 参考视频:https://www.youtube.com/watch?v=nmhjrI-aW5o 2.代码 and 代码解析 package com.dazuizui.insertionSort; public class BubbleSorting { public static void main(String[] args) { //原创 2021-10-23 19:45:00 · 93 阅读 · 0 评论 -
插入排序 Insertion Sort
插入排序 Insertion Sort 作者:哇塞大嘴好帅(我爱大嘴网) 作者:哇塞大嘴好帅(我爱大嘴网) 1.思路 插入排序演示视频:https://www.youtube.com/watch?v=OGzPmgsI-pQ 比如有5个数字,{25,14,52,63,66} 先从下标为1开始判断它前一个是否比他大,如果比它下标-1大那么就交换,但必须有一个条件,当前下标-1必须大于0因为不大于0会越界。 2.代码实现 package com.dazuizui.insertionSort; /**原创 2021-10-17 21:04:01 · 116 阅读 · 0 评论 -
Java数据结构-无重复字符的最长子串 作者:哇塞大嘴好帅
Java数据结构-无重复字符的最长子串 作者:哇塞大嘴好帅 1.题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为原创 2020-12-12 15:41:18 · 157 阅读 · 0 评论 -
Java数据结构与算法面试题-两数之和 作者:哇塞大嘴好帅
Java数据结构与算法面试题-两数之和 作者:哇塞大嘴好帅 作者:哇塞大嘴好帅 哇塞大嘴好帥 1.题目 -该题目由LeetCode提供 ou are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two nu原创 2020-11-27 21:33:49 · 1625 阅读 · 0 评论 -
Java数据结构与算法面试题 两数之合 作者:哇塞大嘴好帅
Java数据结构与算法面试题 两数之合 作者:哇塞大嘴好帅 作者:哇塞大嘴好帅 哇塞大嘴好帥 1.题目 该题目来自LeetCode Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solut原创 2020-11-22 22:50:50 · 1556 阅读 · 0 评论 -
Java数据结构-约瑟夫 作者:哇塞大嘴好帥(哇塞大嘴好帅)
Java 约瑟夫 作者:哇塞大嘴好帥(哇塞大嘴好帅) 作者:哇塞大嘴好帥(哇塞大嘴好帅) 0.Josephu(约瑟夫) 分析 设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,倒数m的那个人出列,他的下一位又从1开始报数,疏导m那个人又出列 假设: n = 6 有6个人 n = 1 从第一个人开始报数 m = 2 数两下 环形链表思路 1.创建第一个节点,让first指向当前节点,形成环形链表 2.创建一个新的节点,就把原创 2020-10-23 21:38:39 · 1609 阅读 · 0 评论 -
Java数据结构双向链表 作者:哇塞大嘴好帥
Java数据结构双向链表 作者:哇塞大嘴好帥 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1.双向链表 双向链表也是链表的一种,他有2个指针一个指向下一个节点,一个指向前一个节点. 2.双向链表-增 /** * 增加一个节点 * @param linkedlist 需要进行操作的链表 * @param node 要添加的元素 */ public void putNode(Node linkedlist, Node node){ //创建临时遍历, 用于遍历链表原创 2020-10-17 21:43:38 · 1546 阅读 · 0 评论 -
Java数据结构链表面试题 作者:哇塞大嘴好帥(哇塞大嘴好帅) --持续更新
作者:哇塞大嘴好帥(哇塞大嘴好帅) Java数据结构链表面试题 4.1.查询链表有效数据个数 //判断有效数据个数 public int validDate(){ //创建临时变量 NodeDate nodeDate = head.next; //创建计数器 用于记录个数 int count = 0; while (true){ if (nodeDate == null){ return count; }原创 2020-10-16 22:28:52 · 1575 阅读 · 0 评论 -
数据结构-链表(Java实现) 作者:哇塞大嘴好帥
数据结构-链表(Java实现) 作者:哇塞大嘴好帥 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1.链表的介绍 第一个节点是头节点,他不存放任何数据,他的任务只有指向第一个真正存放数据的的节点。每一个节点都有next属性,next是指向下一个节点。如果next为NULL就证明当前节点是尾节点。 链表的优点: 插入删除不需要移动其他元素,只需要更改指针即可。效率高。 链表在内存空间中不要求连续,空间利用率高。 大小没有固定,扩展灵活。 链表的缺点: 查询数据效率低。 2.代码解原创 2020-10-04 16:15:18 · 1591 阅读 · 1 评论 -
数据结构-数组循环队列 作者:哇塞大嘴好帥
数据结构-数组循环队列 作者:哇塞大嘴好帥 作者:哇塞大嘴好帥(哇塞大嘴好帅) 思路分析: foot永远指向序列尾 head永远指向队列头部的后一位 当队列满的时候,条件是: (head + 1) % 数组容量 (详细介绍在最下方的代码分析) 当队列为空的时 条件是:(head + 1) % 数组容量 == foot(详细介绍在最下方的代码分析) 获取队列中有效数据个数 条件为:(head + 数组容量 - foot) % maxSize(详细介绍在最下方的原创 2020-09-30 20:33:26 · 1745 阅读 · 0 评论 -
java数据结构-稀疏数组 作者:哇塞大嘴好帥
java数据结构-稀疏数组 作者:哇塞大嘴好帥 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1.介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 如果在开发中使用这个算法可以节省我们的空间提升效率. 稀疏数组的处理方法是 纪律数组一共有就几行几列,有多少个不同的值 把具体由不同的值的元素的行列和值纪律在一个小规模的数组中,从而缩小程序的规模 首先观察稀疏数组的第0行第0列他的值是6 意思就是原二维数组的行数 , 在观察下稀疏数组的第0行第1列他的值是7原创 2020-09-27 13:08:03 · 1524 阅读 · 0 评论