ICode9

精准搜索请尝试: 精确搜索
  • 【C# 数据结构与算法】 顺序查找2022-06-09 18:36:30

    概览   顺序查找  顺序查找的定义为:在一个已知无序(或有序)的队列中找出与给定的关键字相同的数的具体位置。 其原理是让关键字与队列中的数从开始一个一个地往后逐个比较,直到找到与给定的关键字相同的数。 当然,顺序查找绝不仅限于对数字、字符的查找,也适用于前缀、对象信息的关

  • 牛客网高频算法题系列-BM14-链表的奇偶重排2022-06-07 10:01:57

    牛客网高频算法题系列-BM14-链表的奇偶重排 题目描述 给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。 注意是节点的编号而非节点的数值。 原题目见:BM14 链表的奇偶重排 解法一:链表遍历(使用额外空间) 首先,判断如果链表为空或者只有1或2个

  • OO第三单元回顾总结2022-06-05 20:33:09

    目录前言一、架构设计1. 第一次作业2. 第二次作业3. 第三次作业二、测试数据准备三、性能分析1. query_circle与query_block_sum2. query_group_value_sum3. query_least_connection4. send_indirect_message四、Network拓展五、学习体会 前言 本单元围绕JML进行规格化设计,契约式

  • 2022 OO 第三单元2022-06-05 03:32:13

    2022 OO 第三单元总结 一、利用 JML 规格准备测试数据   首先是对于 JML 规格的理解。通过阅读 model 可以初步了解需要维护的对象,针对每个方法按照 normal_behavior 和 exceptional_behavior 进行划分,先实现异常行为判断,再按照 requires 条件分别实现正常行为。对于比较

  • 120. 三角形最小路径和(动态规划)2022-06-05 02:33:18

    120. 三角形最小路径和 给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步

  • BUAA-OO-第三单元总结2022-06-04 19:31:34

    目录一、需求分析1、第一次作业2、第二次作业3、第三次作业二、方案实现1、第一次作业2、第二次作业3、第三次作业4、架构设计,图模型构建维护总结三、测试数据准备四、bug分析五、Network扩展六、心得体会 一、需求分析 1、第一次作业 通过实现官方的Person、Network、Group接口来

  • OO第三单元总结2022-06-03 15:33:26

    OO第三单元总结 一、架构设计 1. 第一次作业 1.1 图模型构建和维护策略: 构建: Network是图:每个Person是图上的一个结点,保存在在people列表中;每个Relation是图上的一条边,边的权值和此边两顶点的Person分别保存在此边两顶点Person的value列表中。 Group是群:类似微信群,本质上是一群

  • LeetCode 0206 Reverse Linked List2022-06-03 15:01:51

    原题传送门 1. 题目描述 2. Solution 1 1、思路分析 方法一: 遍历,逐个摘下结点,头插到新链表 2、代码实现 package Q0299.Q0206ReverseLinkedList; import DataStructure.ListNode; public class Solution1 { /* 方法一: 遍历,逐个摘下结点,头插到新链表 */

  • 链表内指定区间反转2022-06-03 01:00:24

    描述 将一个节点数为size链表m位置到n位置之间的区间反转,要求时间复杂度O(n),空间复杂度O(1)。 例如: 给出的链表为1→2→3→4→5→NULL, m=2,n=4, 返回1→4→3→2→5→NULL. 数据范围: 链表长度0<size≤1000,0<m≤n≤size,链表中每个节点的值满足∣val∣≤1000 要求:时间复杂度O(n) ,空

  • 牛客网高频算法题系列-BM9-删除链表的倒数第n个节点2022-06-02 09:33:40

    牛客网高频算法题系列-BM9-删除链表的倒数第n个节点 题目描述 给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针 原题目见:BM9 删除链表的倒数第n个节点 解法一:双指针法 首先,考虑两种特殊情况: 如果原链表为空,直接返回null。 如果k不是正数,直接返回null。 否则,使用双

  • 牛客网高频算法题系列-BM8-链表中倒数最后k个结点2022-06-01 10:02:16

    牛客网高频算法题系列-BM8-链表中倒数最后k个结点 题目描述 描述:输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。 原题目见:BM8 链表中倒数最后k个结点 解法一:双指针法 首先,考虑两种特殊情况: 如果

  • 树-线索化二叉树2022-05-31 23:36:12

    线索化二叉树 先看一个问题 将数列 {1, 3, 6, 8, 10, 14 } 构建成一颗二叉树. n+1=7 问题分析: 当我们对上面的二叉树进行中序遍历时,数列为 {8, 3, 10, 1, 6, 14 } 但是 6, 8, 10, 14 这几个节点的 左右指针,并没有完全的利用上. 如果我们希望充分的利用 各个节点的左右指针, 让

  • Identification of Key Nodes Based on Integrating of Global and Local Information论文2022-05-31 17:32:38

      之前使用PageRank提取关键结点的方法是计算每个结点的PageRank的值,然后提取top10%的结点作为关键结点。但是PageRank是从全局视角给网页排序,从而得到的每个结点的PageRank的值。   这篇文章结合复杂网络的局部特征和全局特征,通过标准化每个节点的度和中间性中心性,利用节点之

  • 反转链表2022-05-31 00:00:59

    关键在于遍历链表时将结点next指针指向前一个结点。 描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围:0≤n≤1000 要求:空间复杂度O(1),时间复杂度O(n)。 /* struct ListNode { int val; struct Lis

  • acwing2372022-05-30 20:32:23

    这道题一眼就知道是并查集,创个int型数组按步骤写就好了。 哈哈如果这样想简单了就错了。看一下题目的数据范围: 编号最大值达到了\(10^9\),但是不同的编号最多只有\(2\times 10^5\)个,问题就出在这里。如果创建一个有10亿个元素的int数组,那内存明显不够用。所以需要将数组离散化。

  • 牛客网高频算法题系列-BM6-判断链表中是否有环2022-05-30 10:04:11

    牛客网高频算法题系列-BM6-判断链表中是否有环 题目描述 判断给定的链表中是否有环。如果有环则返回true,否则返回false。 原题目见:BM6 判断链表中是否有环 解法一:双指针法 使用两个指针,fast 与 slow。它们起始都位于链表的头部。随后,slow 指针每次向后移动一个位置,而fast 指针

  • 红黑树技术细节2022-05-29 23:00:43

    参考: https://zhuanlan.zhihu.com/p/273829162(图解什么是红黑树) https://zhuanlan.zhihu.com/p/481921783(红黑树原理以及实现) 关键概念 红黑树的本质其实也是对概念模型:2-3-4树的一种实现,因此我们先来关注2-3-4树。 2-3-4树是阶数为4的B树,B树,全名BalanceTree,平衡树。这种结构主要

  • 数据结构实验之二叉树:树的同构2022-05-29 17:32:46

    Description给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。                              

  • [LeetCode] 1305. All Elements in Two Binary Search Trees 两棵二叉搜索树中的所有元素2022-05-29 14:32:42

    Given two binary search trees root1 and root2, return a list containing all the integers from both trees sorted in ascending order. Example 1: Input: root1 = [2,1,4], root2 = [1,0,3] Output: [0,1,1,2,3,4] Example 2: Input: root1 = [1,null,8], root2

  • 链表2022-05-29 10:04:09

    目录一 链表原理二 单链表的算法实现2.1 单链表的初始化2.2 单链表插入元素2.3 单链表查找 一 链表原理 链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不必须相邻,那么 怎么表示逻辑上的相邻关系呢?可以给每个元素附加一个指针域,指向下一个元素的存储位 置。如图

  • python链表2022-05-29 05:00:07

    class LNode(object): # 结点初始化函数, p 即模拟所存放的下一个结点的地址 # 为了方便传参, 设置 p 的默认值为 0 def __init__(self, data, p=0): self.data = data self.next = p class LinkList(object): def __init__(self): sel

  • 牛客网高频算法题系列-BM4-合并两个排序的链表2022-05-28 19:01:49

    牛客网高频算法题系列-BM4-合并两个排序的链表 题目描述 输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。 数据范围: 0 <= n <= 1000,-1000 <= 节点值 <= 1000 要求:空间复杂度 O(1),时间复杂度 O(n) 原题目见:BM4 合并两个排序的链表 解

  • 图着色寄存器分配2022-05-26 23:34:33

    图着色寄存器分配 视频地址:Bilibili 这里说说图着色,先讲解原理,同时也提供了一个java语言的实现。 图着色问题 在介绍图着色寄存器分配之前,先来说一下图着色问题。下面是一个图: 图中一共6个结点,被边相连的结点表示有相邻的关系,有相邻关系的结点不可以被染成同一种颜色,这就好像给地

  • BST&平衡树 12022-05-26 12:31:06

    BST 二叉查找树的定义: 一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; 从上述定义可以看出BST的性质: BST中序遍历的序列权值递增 查找 按

  • LeetCode 0147 Insertion Sort List2022-05-23 08:32:10

    原题传送门 1. 题目描述 2. Solution 1 1、思路分析 插入排序思想,把序列分成两部分,有序部分和待排序部分,初始时有序部分就1个元素,对于链表来说就是头结点。遍历链表把待排序部分的结点逐个插入到有序部分。 2、代码实现 package Q0199.Q0147InsertionSortList; import DataStru

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有