分量 算法 笔记tarjan

SQL JOIN的常见连接算法(转载)

原文:https://zhuanlan.zhihu.com/p/495442432 在数据库和大数据领域,通过SQL中的JOIN连接将两个及两个以上的表(或中间表、视图、物化视图)中的数据 按指定的连接条件关联起来,是很常用也很方便的操作。 我们前面学习了JOIN有多种常见连接方式如内连接INNER ......
算法 常见 JOIN SQL

读SQL进阶教程笔记13_SQL中的分组和层级

1. 数据分组 1.1. SQL的语句中具有分组功能的是GROUP BY和PARTITION BY 1.1.1. 两者都有数学的理论基础 1.1.2. 都可以根据指定的列为表分组 1.1.3. 区别仅仅在于,GROUP BY在分组之后会把每个分组聚合成一行数据 1.1.4. GROUP BY的作用是 ......
进阶教程 层级 SQL 笔记 教程

【uniapp】【外包杯】学习笔记day08 | 初具雏形+后期任务

总的来说就是BBQ了,基本上前后端都有了阶段性成果,但是问题在于是否符合我们题目的要求,所以也需要进行很详细的改动,其次就是小程序的支付功能以及登录功能1还有具体配置还是不太行。 然后下载的spring模板也不太会用,家人们真的无语啊! 大概还有三个晚上,尽力改改吧,然后就没有然后了! ......
雏形 任务 笔记 uniapp day

C#中使用CAS实现无锁算法

CAS 的基本概念 CAS(Compare-and-Swap)是一种多线程并发编程中常用的原子操作,用于实现多线程间的同步和互斥访问。 它操作通常包含三个参数:一个内存地址(通常是一个共享变量的地址)、期望的旧值和新值。 CompareAndSwap(内存地址,期望的旧值,新值) CAS 操作会比较 ......
算法 CAS

Spring 框架总结笔记

第一章 初识Spring 1.1 Spring简介 Spring是一个为简化企业级开发而生的开源框架。 Spring是一个IOC(DI)和AOP容器框架。 IOC全称:Inversion of Control【控制反转】 将对象【万物皆对象】控制权交个Spring DI全称:(Dependency ......
框架 笔记 Spring

C语言基础知识(不想写笔记啦,就把它打出来)

scanf()函数的使用: 操作系统接收数据时其实都是当作字符来接收的。 scanf()函数的两种用法: 用法一:scanf("输入控制符",输入参数); 功能:将从键盘输入的字符转化成输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。 用法二:scanf("非输入控制符 输入控制符 ......
基础知识 语言 基础 笔记 知识

快速排序以及快速排序常用的三种算法

快速排序相比其他极大排序在效率和空间复杂度上都算是比较优得。并且在进行了三数取中优化以后,除了及其小的情况外,基本能保持logn的时间复杂度。 三数取中法;在一堆数据中随机取三个数,然后取其中间大小的数。 有了三数取中的基础以后,快速排序的key就可以用三数取中来完成了。 1:快速排序有三种常用的方 ......
算法 常用

构建之法阅读笔记03

开发流程 ①写了再改模式 ②瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的, 从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题, 那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从 ......
笔记

QuHai互联科技 算法题部分

11、实现计算第n个斐波那契数 12、给定一个字符串编码规则,如输入字符串”Y3E12S!3”,字母后面的数字表示该字符重复几次,如果字符后没有数字则表示一个字符,最终输出转码后的字符串’YYYEEEEEEEEEEEES!!!’。试写出转码的函数,编程语言不限。 13、简述你所了解的两种或以上排序算 ......
算法 部分 QuHai 科技

【进阶15】【自学笔记】Python运行cmd命令的几种方式

一、pathlib 的简单介绍 pathlib 是 Python 3.4 及更高版本中内置的标准库,提供了一种面向对象的方式来处理文件系统路径。它为不同操作系统提供了合适的路径语义,并支持常见的文件和目录操作,比如判断路径是否存在、获取路径的各个部分、创建/删除目录等操作。 二、基本操作 1、获取当 ......
命令 方式 笔记 Python cmd

【进阶14】【自学笔记】Python运行cmd命令的几种方式

1、使用os.system()函数 import os # 运行cmd命令 os.system('dir') 2、使用subprocess模块 import subprocess # 运行cmd命令 subprocess.run(['dir'], shell=True) 3、使用os.popen() ......
命令 方式 笔记 Python cmd

扎实打牢数据结构算法根基,从此不怕算法面试系列之week01 02-09 测试算法时间复杂度性能的方式方法

#1、数组生成器 测试算法性能肯定不能自己手动声明创建数组了,在现代计算机上,对于O(n)级别的算法,都需要10W级别以上的数据才能看到性能,我们肯定不能手动声明10W个元素的数组吧? 所以,创建数组生成器。 这里,自己创建一个数组生成器——ArrayGenerator。 package com.m ......
算法 复杂度 数据结构 根基 性能

Django笔记二十六之数据库函数之数学公式函数

本文首发于公众号:Hunter后端 原文链接:Django笔记二十六之数据库函数之数学公式函数 这一篇来介绍一下公式函数,主要是数学公式。 其中 sin,cos 这种大多数情况下用不上的就不介绍了,主要介绍下面几种: Abs() 绝对值 Ceil() 向上取整 Floor() 向下取整 Mod() ......
函数 公式 数学 数据库 笔记

阅读笔记

第四章 隐私: 本章探讨了隐私问题。随着人们对网络的使用越来越频繁,个人信息流失的问题也变得十分常见。作者分析了这些问题的深层次原因,并提出了相关的解决方案,包括匿名化技术、加密技术等等。 本章主要介绍了设计和用户体验的重要性,并提供了一些有用的提示和技巧。 首先,作者介绍了设计和用户体验的概念,并 ......
笔记

学习十大排序算法(1)——选择排序【实现方法c语言】

十大排序算法第一节——选择排序 复制代码直接滑到最后!!! 选择排序就是找到(最大或者)最小元素,放到最开始的位置,然后就是在没有排序的序列中找到最小的排在已经排好的序列之后,直至没有排数列排完。(自己的理解) 大概解释代码其中的细节:第6行中的sizeof的用法是求出括号里面的所占的字节数,比如s ......
算法 语言 方法

程序员修炼之道阅读笔记

第16节 强力编辑器 1、我们认为你最好是精通一种编辑器,并将其用于所有编辑任务:代码、文档、备忘录、系统管理等等。 进行编辑活动时,你不必停下来思考怎样完成文本操作,编辑器将成为你双手的延伸,键会在滑过文本和思想时歌唱起来。 这就是我们的目标。 2、好的编辑器应该具有这些特性:可配置、可扩展、可编 ......
程序员 笔记 程序

分块入门学习笔记

分块入门学习笔记 前言 感觉我还是比较喜欢这种几乎不用怎么动脑的暴力数据结构啊 例题 给出一个长为 $n$ 的序列和 $n$ 次操作。 设计一种数据结构,满足区间加法和区间求和。 $1 \leq n \leq 50000$ 分析 一开始也是觉得搞个线段树或者树状数组不就行了吗,后面发现分块还可以搞一 ......
笔记

微信小程序学习笔记

注册及开发配置 注册:微信公众平台 注册后在开发管理-开发设置中复制AppID(小程序ID); 开发工具:推荐官方 微信开发者工具 微信官方文档: 微信开放文档 新建第一个项目 在微信开发者工具中新建项目 打开并登录微信开发者工具,新建一个小程序项目。appID填入你刚刚复制的id,后端服务可选中不 ......
笔记 程序

人月神话读书笔记03

本次阅读第七章 我过去是怎么做的 在编程之前没有清晰的目标,写到什么就去做什么 这种做法为什么不好 思路不够清晰,导致编程没有逻辑性 如何解决: 7. 为什么巴比伦塔会失败? 关于巴比伦塔的故事:维基百科 Tower of Babel 7.1 巴比伦塔的管理教训 据《创世纪》记载,巴比伦塔是人类继诺 ......
神话 笔记

人月神话读书笔记01

我过去是怎么做的: 编程系统产品开发的工作量是供个人使用的、独立开发的构件程序的九倍。这次的结对作业代码量也就这么样,但和队友细细一算,林林总总散落在各个角落中我们一起花的时间可真是一个很可观的数字了。虽然结对编程还比不上编程系统产品开发这种东西,但至少也涉及到了交流和维护,构思与时间进度等东西。 ......
神话 笔记

人月神话读书笔记02

我过去是怎么做的: 单纯把编程作为工作 这样做为什么不好: 没有乐趣就没有动力 解决办法: 第一章 焦油坑 编程系统产品 只有编程系统产品才是真正有用的产品,是大多数系统开发的目标。 职业的乐趣 创建事物的纯粹快乐;eg: 当自己写完第一个hello world时候的欣喜 来源于开发对他人有用的东西 ......
神话 笔记

梦断代码读书笔记2

第五章中作者提到了OSAF办公室里的两条狗,他们是项目的吉祥物,也是很多人工作之余的放松。随着项目人数的增多,对狗的管理也提上了日程,这一过程中,作者发现了管理的程序员和管理狗的相似之处。人们用动物术语讨论管理程序员时,通常比作“管理猫群”。初读时,我感到十分的不适,辛苦的程序员被比作办公纸里的拉布 ......
代码 笔记

移除给定 Q 个顶点后给定图中的连通分量计数

移除给定 Q 个顶点后给定图中的连通分量计数是一个经典的图论问题。给定一个无向图G,和一个由Q个节点组成的集合S,问题的目标是找出在S中所有节点被移除后,G中剩余的连通分量的数量。这个问题在许多实际的应用中都有着广泛的应用,例如网络安全、社交网络分析等。 解决这个问题的一种基本方法是使用深度优先搜索 ......
顶点 分量

vue2源码-十、diff算法

diff算法 diff算法的特点就是平级比较,内部采用了双指针方式进行优化,优化了常见的操作。采用了递归比较的方式。 针对一个节点的diff算法 先拿出根节点来进行比较如果是同一个节点则比较属性,如果不是同一个节点则直接换成最新的即可。 同一个节点比较属性后,复用老节点 比较儿子 一方有儿子 一方没 ......
算法 源码 vue2 diff vue

Java学习笔记(二)

1.请描述标识符的命名规则 答:(1)由26个英文字母大小写,数字,_或$组成。 (2)不能以数字开头。 (3)不能使用关键字和保留字(指已经定义过的变量),但是可以包含关键字和保留字。 (4)严格区分大小写,无长度限制。 (5)不能有空格。 2. 请描述数据类型存在的意义 数据有明确的类型划分,为 ......
笔记 Java

Java学习笔记(一)

1、JDK,JRE,JVM三者之间的关系、 答:JDK是编译环境,集成了JRE和一些JAVA开发工具包。JRE是运行环境。JVM是一种平台软件,负责将字节码文件解释成机器码并提交操作系统执行。将.class文件解释并提交操作系统。 2、为什么要配置环境变量 配置环境变量:为了在系统中的任何位置都可以 ......
笔记 Java

福特-富克森算法

福特-富克森(Ford-Fulkerson)算法是一种求解最大流问题的经典算法,它的基本思想是通过不断地增广路径来找到最大流。 最大流问题通常是指在网络中找到从源点到汇点的最大流量,其中网络由若干条有向边组成,每条边都有一个容量,表示该边可以通过的最大流量。最大流问题的目标是找到一个流,使得从源点到 ......
算法

分而治之算法

分而治之算法(Divide and Conquer Algorithm)是一种基于递归的算法思想,将问题划分为若干个子问题,逐个解决子问题并将它们合并成原问题的解。 分而治之算法通常包括以下步骤: 分解:将原问题分解为若干个子问题,这些子问题的结构与原问题相同或类似,但规模更小。 解决:递归地解决每 ......
算法

Dijkstra的算法

Dijkstra算法是一种单源最短路径算法,用于在带有非负权重的图中,找到一个源节点到所有其他节点的最短路径。该算法的基本思想是通过贪心的方式逐步扩展当前已知的最短路径集合,直到找到源节点到所有其他节点的最短路径。 Dijkstra算法的具体步骤如下: 初始化:设置源节点到自己的距离为0,将源节点标 ......
算法 Dijkstra

LeetCode 周赛 341 场,模拟 / 树上差分 / Tarjan 离线 LCA / DFS

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 上周末有单双周赛,双周赛我们讲过了,单周赛那天早上有事没参加,后面做了虚拟竞赛,然后整个人就不好了。前 3 题非常简单,但第 4 题有点东西啊,差点就放弃了。最后,被折磨了一个下午和一个大 ......
LeetCode Tarjan 341 LCA DFS