算法leetcode day 30

算法导论-第15章-动态规划

**动态规划**(dynamic programming)的思想是**分治思想**和**解决冗余**。 - 与分治法相似的是 - 将原问题**分解为若干个子问题**,先求解子问题,然后从这些子问题的解得到原问题的解。 - 与分治法不同的是 - 经分解的子问题**往往不是相互独立的**。若用分治法来解 ......
导论 算法 动态

算法导论-第13章-红黑树

第12章介绍了一棵高度为$h$的二叉搜索树,它可以支持任何一种基本动态集合操作,如`SEARCH`、`PREDECESSOR`、`SUCCESSOR`、`MINIMUM`、`MAXIMUM`、`INSERT`和`DELETE`等,其时间复杂度均为$\Omicron(h)$。因此,如果搜素树的高度较低 ......
导论 算法

算法导论-第17章-摊还分析

本章主要涉及理论分析,感觉第3版讲的不是很好(也有可能是翻译的语句不通顺),这里搬运了知乎上的文章。 - https://zhuanlan.zhihu.com/p/536470404 - https://zhuanlan.zhihu.com/p/577232877 - https://zhuanla ......
导论 算法

算法导论-第14章-数据结构的扩张

本章讨论通过扩展红黑树构造出的两种数据结构。14.1节介绍一种支持一般动态集合上顺序统计操作的数据结构。通过这种数据结构,我们可以快速地找到一个集合中的第 $i$ 小的数,或给出一个指定元素在集合的全序中的位置。14.2节抽象出数据结构的扩张过程,并给出一个简化红黑树扩张的定理。14.3节使用这个定 ......
数据结构 导论 算法 结构 数据

算法导论-第21章-用于不相交集合的数据结构

21.1节描述不相交集合数据结构支持的各种操作,并给出一个简单的应用。21.2节使用一种简单链表结构来实现不相交集合。21.3节使用有根树来实现,使用树表示的运行时间理论上好于线性时间,然而对于所有的实际应用它确是线性的。 # 21.1 不相交集合的操作 一个**不相交集合数据结构**(disjoi ......
数据结构 导论 算法 结构 数据

算法导论-第4章-分治法

# 回忆 在2.3.1中,归并排序使用了分治法。在分治法中,当递归地求解一个问题,在每层递归中执行如下三步骤: - 分解(Divide):将问题划分为子问题,子问题的形式与原问题一样,只是规模更小。 - 解决(Conquer):递归地求解出子问题。如果子问题的规模足够小,则停止递归,直接求解。 - ......
导论 算法

算法导论-第6章-堆排序

# 6.1 堆及堆的性质 **(二叉)堆**可以看作完全二叉树,其存储结构通常是**数组**,表示堆的数组A中有两个重要属性:$A.length$表示数组元素的个数;$A.heap-size$表示有多少个堆元素在数组中,$0 \le A.heap-size \le A.length$。 ![Figu ......
导论 算法

算法导论-第7章-快速排序

# 7.1 快速排序的描述 对一个典型的子数组$A[p..r]$进行快速排序的三步分治过程: - **分解**:数组$A[p..r]$被划分为两个(可能为空)的子数组$A[p..q-1]$和$A[q+1..r]$,使得$A[p..q-1]$中的每一个元素都小于等于$A[q]$,而$A[q+1..r] ......
导论 算法

算法导论-第8章-线性时间排序

# 前言 此前我们已经学习了几种$\Omicron(n \log n)$的排序算法,这些排序算法都有一个有趣性质,在排序的最终结果中,各元素的次序依赖于它们之间的比较,我们将这类排序称为**比较排序(comparison sort)**。 8.1节将要证明**对包含$n$个元素的输入序列,在最坏情况 ......
导论 线性 算法 时间

算法导论-第9章-中位数和顺序统计量

一个包含 $n$ 个元素的集合中的第 $i$ 个**顺序统计量**指集合中的第 $i$ 小的元素。**最小值**是第 $1$ 个顺序统计量($i= 1$),**最大值**是第 $n$ 个顺序统计量($i = n$)。 9.1节将讨论从集合中找出最小值和最大值的问题。9.2节将分析一个实用的算法,它在 ......
中位数 导论 算法 顺序

https://leetcode.cn/ 第9题 判断回文数

# 回文数 121 是; 123 不是 #定义一个函数 判断是否是回文数 def get_Hui(num): #将整数num转字符串 str_num = str(num) str_num_change = str_num[::-1] num2 = int(str_num_change) #判断整数n ......
回文 leetcode https cn

文心一言 VS 讯飞星火 VS chatgpt (51)-- 算法导论6.2 3题

# 三、当元素 A[i] 比其孩子的值都大时,调用 MAX-HEAPIFY(A.i)会有什么结果? ## 文心一言: 当元素 A[i] 比其孩子的的值都大时,调用 MAX-HEAPIFY(A, i) 会将 A[i] 与其孩子中的最小值进行交换,并将 A[i] 视为新的根节点。这个操作会使得以 A[i ......
文心 导论 算法 chatgpt VS

day114- 动态sql

动态SQL 解决拼接SQL语句字符串时的问题。 if标签 if标签可通过test属性的表达式进行判断,若表达式的结果为true,则标签中的内容会执行;反之标签中的内容不会执行 <!-- List<Emp> getEmpByCondition(Emp emp); --> <select id="get ......
动态 day 114 sql

学不会的排序算法

#什么是排序 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。 #排序算法的评价标准 (1)时间复杂度(2)空间复杂度(3)排序方式(4)稳定性 ![](https://img2023.cnblogs.com/bl ......
算法

第二阶段知识点总结【day32-day35】

# 第二阶段知识点总结 # day32 ## 1.面向过程和面向对象优缺点,使用场景 ## 2.如何定义类,写出一个例子,定义类的过程发生了那些事,如何产生对象,产生的对象有何特点 ## 3.如何定制对象自己的属性 ## 4.属性的查找顺序是怎样的 # day33 ## 1.分别写出一个绑定方法,非 ......
知识点 day 阶段 知识 32

第二阶段知识点总结解释版【day32-day35】

# 知识点总结 # day32 ## 1.面向过程和面向对象优缺点,使用场景 - 面向过程和面向对象都是编程的两种不同的范式。 - 面向过程的优点: - 1.执行速度比面向对象更快。 - 2.简单易懂,且不需要大量的规则或语法。 - 3.它适合在小型程序中使用。 - 面向过程的缺点: - 1.没有高 ......
知识点 day 阶段 知识 32

Java基础-Day06

# Java基础-Day06 ## 多维数组 ![](https://img2023.cnblogs.com/blog/2779111/202306/2779111-20230629102429442-1130645204.png) - 如何理解二维数组? - 数组属于引用数据类型 - 数组的元素也 ......
基础 Java Day 06

延时任务的实现--生成订单30分钟未支付,则自动取消

原文链接:blog.csdn.net/hjm4702192/article/details/80519010 引言: 在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。 那么 ......
订单 任务

leetcode ListNode类--Java

public class ListNode { public int val; public ListNode next; public ListNode() {} public ListNode(int val) { this.val = val; } public ListNode(int va ......
leetcode ListNode Java

leetcode TreeNode类 --java

public class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode() { } public TreeNode(int val) { this.val = val; } public TreeNode(int ......
leetcode TreeNode java

Hutool—雪花算法

一、介绍Hutool工具: 官网地址:简介 | Hutool Hutool是一个Java工具库,其中包含了各种实用的工具类和方法。通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自每个用户的精雕细琢 ......
算法 雪花 Hutool

python基础day35 Mixins机制和元类

Mixins机制 class Vehicle: # 交通工具 pass class FlyMinix(): def fly(self): ''' 飞行功能相应的代码 ''' print("I am flying") ''' 1. 主类:就是大部分都是主要的功能 2. 辅类:就是一些辅助的功能 3. ......
机制 基础 python Mixins day

代码随想录算法训练营第二十天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 思路 递归法: 需要思考清楚,如果当前节点<low,那么就返回递归它的右节点,而不是自己取判断,找出来一个合适的节点,这样的话会越想越乱 代码: 1 TreeNode* trimBST_cursor(TreeNode* root, int low, int high) { ......
随想录 训练营 数组 随想 算法

leetcode动态规划-

什么是动态规划 动态规划的定义和特点 动态规划的基本思想和步骤 动态规划的分类和常见问题 线性动态规划 最长公共子序列 最长递增子序列 最大子数组和 区间动态规划 矩阵链乘法 括号化问题 背包动态规划 0-1背包问题 完全背包问题 多重背包问题 状态压缩动态规划 旅行商问题 汉密尔顿回路问题 动态规 ......
leetcode 动态

二叉树-前序遍历-leetcode222

给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例 1: 输入:root = ......
leetcode 222

leetcode动态规划题目总结

ref :https://leetcode.cn/circle/article/2Xxlw3/ 这是一篇我在leetcode.com上撰写的文章Dynamic Programming Summary,就不翻回中文了,直接copy过来了。 Hello everyone, I am a Chinese ......
leetcode 题目 动态

动态规划leetcode 清单

不同的二叉搜索树 (卡特兰数) N 天后的牢房 骑士拨号器 最大为 N 的数字组合 鸡蛋掉落 石子游戏 新21点 分汤 有效的井字游戏 统计不同回文子字符串 编辑距离 买卖股票的最佳时机含手续费 爬楼梯 奇怪的打印机 不同路径 II 不同路径 出界的路径数 二叉树的直径 最大子序和 优美的排列 零钱 ......
清单 leetcode 动态

算法中的七大查找方法

算法中有多种查找方法,常见的有: 顺序查找:从一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查找失败。 二分查找:在有序的数组中,确定中间的下标mid=(left+right)/2,然后让需要查找的数findVal和a ......
算法 七大 方法

[LeetCode] 1493. Longest Subarray of 1's After Deleting One Element

Given a binary array nums, you should delete one element from it. Return the size of the longest non-empty subarray containing only 1's in the resulti ......
LeetCode Deleting Subarray Element Longest

Adam优化算法在大规模分布式模型训练中的应用:模型整合与性能提升

作者:禅与计算机程序设计艺术 标题:45. Adam优化算法在大规模分布式模型训练中的应用:模型整合与性能提升 1. 引言 1.1. 背景介绍 随着深度学习模型的规模越来越大,训练过程需要大量的计算资源和时间。为了让模型能够高效地训练,一些优化算法被提出,以减少训练时间和提高模型性能。其中,Adam ......
模型 分布式 算法 大规模 性能