标签:算法
今天我要ak!! 按照题意直接输出就好了 #include <stdio.h> int main() { printf("今天我要AKn"); } 小A的方程题 给出了三个方程式,只要按照题意,直接模拟带入就行,跟高中的函数套函数差不多,模拟题,注意要保留小数点后三位,对于小
题目(链接) 给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6
一、题目大意 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:true 示例 2: 输入:root
初次学习数据结构和算法是几年前的事情了,当时遇到的困难没有记录下来。回过头来复习,记录下学习时遇到的问题。   平衡二叉树(二叉搜索树)(ALV树)可以保证查询效率。在此之前先学习二叉排序树(BST —— Binary Sort Tree)。   在高度为h的ALV树中,最小节点数 S(h) =
基本数据结构 前言 本文为所有常用数据结构的简单实现。持续更新中...... 以下为已实现数据结构的概览 1. 线性表: 顺序表、单向链表、双向链表、栈 线性表 顺序表 1 /** 2 * 顺序表 3 * 4 * @since 2022-09-14 5 */ 6 @Suppr
一、题目大意 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。 返回森林中的每棵树。你可以按任意顺序组织答案。 示例 1: 输入:root = [1,2,3,4,5,
题目(链接) 一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分
好家伙,属于是半自学了   1.关于数据结构 这波又有新的理解了: 来看看程序对数据的处理:     在平时处理问题的时候我们都把注意力集中在算法上了 常常忽略对数值的处理, 现在让我们把精力集中到对数据的处理上, 然后去尝试处理几类问题; (1).数值问题:    分析一波:     (2
F Exactly K Steps 题目: ​ 给出一棵n个点的树,边权为1,进行2e5次询问,每次输出任意一个离结点(u)距离为(k)的结点。 思路: ​ 对于树上问题,我们的武器不多,而且时间复杂度为O(logn),可以尝试往里套知识点。对于一棵树来说,易知一个结点距离最远的结点是树的直径的两
G - Cut Substrings 题目: ​ 给出两个字符串(s)和(t),在(s)中删去(t),当字符串(s)不能再删去(t)的时候,请问最少的删除次数和方案数是多少。字符串长度为500。 思路: ​ 字符串长度为500,所以感觉可以乱搞。我们可以初步想到一个状态(f[i][j]),表示在(
L LCS-like Problem(DP 子序列自动机) 题目: ​ 给出两个串s, t。请找出一个最长的子序列(s'),使其与(t)的最长公共子序列长度不大于1。输出这个最长的长度。 思路: ​ 题目名字是LCS,且题意比较符合DP的定义,优先考虑DP而非字符串来求解问题。 ​ 题目要求在s中
前言 学习算法之前,我们需要先搞懂时间复杂度和空间复杂度。顾名思义,时间复杂度和空间复杂度是一个判断算法好坏的一个标准。时间复杂度就相当于运行代码花费的时间,空间复杂度则代表代码所占用的内存空间。在实际的工作环境中,自然是运行快,占用空间少的代码更具优势。就像一道数学题它本身有多种解法,我们都偏向
CF#821 Div2 A Consecutive Sum 题目: ​ 选择(i)和(j),如果(j = i+xk(x=R)),可以交换(i,j)。任意选择一段长度为k的相加。 思路: ​ 题目等价于在下标(mod) k 相同的数中选一个最大的。简单模拟。可以用vis标记或者优先队列。 实现:
线性表 线性表(List):零个或多个数据元素的有限序列。 首先它是一个序列。也就是说,元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。 然后,线性表强调是有限的。 顺序表与单链表是线性表的两种最基本的存储结构,而静态
二分查找 参数: 有序数组arr(这里按升序来讲),待搜索的值target 步骤 定义左边界left和有边界right 获取中间索引(整数) mid = (left+right)/2,注意:js只有小数,mid需要再取整 中间索引的值arr[mid]与待搜索的值target进行比较 arr[mid