
算法
hello_zzw
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
计算数组的小和
数组 s = [1, 3, 5, 2, 4, 6] ,在 s[0] 的左边小于或等于 s[0] 的数的和为 0 ; 在 s[1] 的左边小于或等于 s[1] 的数的和为 1 ;在 s[2] 的左边小于或等于 s[2] 的数的和为 1+3=4 ;在 s[3] 的左边小于或等于 s[3] 的数的和为 1 ;在 s[4] 的左边小于或等于 s[4] 的数的和为 1+3+2=6 ;在 s[5] 的左边小于或等于 s[5] 的数的和为 1+3+5+2+4=15 。所以 s 的小和为 0+1+4+1+6+15=27原创 2024-10-28 23:31:35 · 299 阅读 · 1 评论 -
设计循环双端队列
使用数组 设计循环双端队列原创 2024-10-15 18:05:41 · 551 阅读 · 0 评论 -
使用栈实现队列
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):原创 2024-10-14 17:55:53 · 195 阅读 · 0 评论 -
队列实现栈
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。原创 2024-10-14 17:52:53 · 197 阅读 · 0 评论 -
leetcode-分割链表
【代码】leetcode-分割链表。原创 2024-10-11 21:56:13 · 222 阅读 · 0 评论 -
两数相加Java
两数之和 https://leetcode.cn/problems/add-two-numbers/description/原创 2024-10-09 23:52:55 · 265 阅读 · 0 评论 -
前序+ 中序 中序+后序 生成二叉树
package com.zzw.leetcode;import java.util.ArrayList;import java.util.List;/** * @PACKAGE_NAME: com.zzw.leetcode * @NAME: Ergodic * @USER: zhaozhenwei * @DATE: 2021/7/22 * @TIME: 6:15 下午 * @Description: **/public class Ergodic { static Tree原创 2021-07-22 20:22:34 · 120 阅读 · 0 评论 -
双向链表反转
package com.zzw.test;/** * @program: HashMapTest * @description: 双向链表反转 * @author: zhaozhenwei * @create: 2021-05-30 10:55 **/public class DoubleListInversion { public static void main(String[] args) { DoubleNode listInversion = create原创 2021-05-30 11:19:55 · 454 阅读 · 0 评论 -
单向链表反转
package com.zzw.test;/** * @program: HashMapTest * @description: 单向链表反转 * @author: zhaozhenwei * @create: 2021-05-30 09:43 **/public class ListInversion { public static void main(String[] args) { Node listInversion = createListInversio原创 2021-05-30 10:42:44 · 87 阅读 · 0 评论 -
查找第index小的数
package com.zzw.algorithm;import java.util.ArrayList;import java.util.Arrays;/** * @program: sorttest * @description: 查找第n个小的数字 * @author: zhaozhenwei * @create: 2021-03-30 19:42 **/public class FindMinKth { /** * 查找当前集合arr第n个小的数字时,使用当原创 2021-03-30 21:32:08 · 111 阅读 · 0 评论 -
KMP
import java.util.Arrays;/** * @program: sorttest * @description: KMP算法 * @author: zhaozhenwei * @create: 2021-03-28 18:44 **/public class KMPAlgorithm { public static void main(String[] args) { String mainStr = "1231241289031241241245.原创 2021-03-28 22:00:06 · 87 阅读 · 0 评论 -
二叉树遍历
二叉树遍历原创 2021-03-27 19:42:18 · 83 阅读 · 0 评论 -
二叉查找树
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉排序树的存储结构。中序遍历二叉排序树可得到一...原创 2019-04-10 08:09:59 · 118 阅读 · 0 评论 -
快速排序-Java
快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选...原创 2019-04-02 22:31:31 · 156 阅读 · 0 评论 -
归并排序
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是分治法的一个非常典型的案例。通过将多个有序的子序 列合并成一个有序的数组,合并结束后即为一个有序的数组。先将无序的数组分成多个无序的子数组,将这些子数组进行进行排序,形成有序的数组,再讲这些有序的子数组合并成一个有序的父数组,即为归并。排序方法: 1.每次将无序的数组分成两个子数组A、B 2.判断子数组A、B...原创 2019-04-05 11:20:43 · 95 阅读 · 0 评论 -
直接插入排序
在插入排序中,一个数组被分成独立的两个部分,有序的部分和无序的部分。然后将无序的那一部分逐个插入到有序的序列,等无序部分的数列完全插入到有序序列后,整个数组则是有序的。插入规则:用index记录比插入数据大的数据的下标,用于记录要插入数据插入的位置,初始时index为无序数组中要插入数据的下标。将无序数组的第一个数据从有序数组的最后一个数据进行比较。当有序数组中的数大于要插入的数时,将有序数组中...原创 2019-04-03 20:56:20 · 187 阅读 · 0 评论