目录
题目链接 颜色分类
算法原理
代码实现
排序数组 算法原理
代码实现
最小的k个数
算法原理
代码实现 题目链接 LeetCode链接:75. 颜色分类 - 力扣(LeetCode)
LeetCode链接:912. 排序数组 - 力扣(LeetCode)
LeetCode链接:面试题 17.14. 最小K个数 - 力扣(LeetCode)
颜色分类 算法原理 我们可以将这个数组划分为三个区域,左边区域全是0也就是红色,中间区域全是1也就是白色,右边区域全是2也就是蓝色。因此我们可以用个变量i来遍历数组,变量left标记0(红色)区域的最右侧,变量right标记2(蓝色)区域的最左侧。
那么就会形成下图所示区域
[0, left]:全都是0[left + 1, i - 1]:全都是1[i, right - 1]:全都是待遍历的元素[right, n - 1]:全都是2 在遍历数组的时候分情况讨论
当nums[i] == 0时:我们需要将 i 位置的元素和 left + 1位置的元素进行交换,这样就能保证在left的左边都是0(包括left),,交换完后i向后移动,swap(nums[++left], nums[i++]。当nums[i] == 1时:直接i++,这样就能保证left + 1到i这个区域内都是1。当nums[i] == 2时:我们需要将 i 位置的元素和 right - 1位置的元素进行交换,这样就能保证在right的右边都是2(包括right),此时的 i 不需要移动,因为 i 到 right - 1 的这块区域都是待遍历的元素,交换后还是待遍历的元素。swap(nums[--right], nums[i])。 当i >= right时停止遍历 代码实现 class Solution { public: void sortColors(vector<int>& nums) { int i = 0, n = nums.
🤖AI改变生活:最近都在说月之暗面的kimi的各项能力吊打国内其他大模型,今天我们真实感受下 kimi、通义千问、文心一言的根据需求写代码的能力。
测评结果让人震惊!
kimi kimi编程过程 我们先看一下热捧的月之暗面的kimi模型。
第一次运行有错误,很正常,我们继续把错误发给kimi,让他修复。
kimi仿佛进入了错误死循环,始终无法修复错误,我认为他可能上下文理解错乱,所以重新描述了自己的需求,让他重新作答。结果依然无法使用。
而且错误变得很离谱,连包都没有导入。
又经过多轮对话,我发现他始终无法修复自己的错误。
最终我放弃和他的对话。
最终代码: kimi的代码越改越复杂,使用canvas更复杂,有大部分错误发生在canvas绘制和字体选择上,没编程基础,都无法调试。
import os from tkinter import Tk, Button, Label, Entry, filedialog, messagebox from PIL import Image from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4 # 注册字体 def register_font(font_name, font_path): try: pdfmetrics.registerFont(TTFont(font_name, font_path)) except IOError as e: print("Error registering font:", e) # 合并图片到PDF def merge_images_to_pdf(folder_path, output_pdf_path): register_font('SimSun', r'C:\Windows\Fonts\simsun.ttc') # 确保提供正确的字体文件路径 pdf = canvas.
文章目录 概要Stable Diffusion 底层结构与原理文本编码器(Text Encoder)图片生成器(Image Generator) 那扩散过程发生了什么?stable diffusion 总体架构主要模块分析Unet 网络采样器迭代CLIP 模型 小结 概要 Stable Diffusion 是一种先进的潜在扩散模型(Latent Diffusion Model),它在深度学习和概率建模领域具有开创性意义。它能够根据文本描述生成高质量、细节丰富的图像,并在图像修复、图像绘制、文本到图像转换和图像到图像转换等任务中表现出色。这种模型由 CompVis、Stability AI 和 LAION 的研究人员在 2022 年发布,其技术提出者 StabilityAI 公司在同年完成了 1.01 亿美元的融资,估值现已超过 10 亿美元。
Stable Diffusion 底层结构与原理 稳定扩散(Stable Diffusion)的底层结构与原理涉及到深度学习和概率建模的领域,尤其是生成模型的研究。以下是稳定扩散的一些基本原理:
稳定过程(Stable Process): 稳定扩散的核心概念之一是稳定过程。稳定过程是一类随机过程,其性质在一定条件下对于加法运算是稳定的。这意味着稳定过程的和仍然遵循相同的分布。在稳定扩散中,这个过程用于逐步生成数据,每一步都是通过添加具有稳定分布的随机变量来改变数据分布。
随机变量的迭代: 稳定扩散的生成过程涉及到对初始噪声进行迭代。初始噪声通常是从简单的分布中生成的,例如标准正态分布。然后,通过多个迭代步骤,每一步都会引入稳定分布的随机变量,逐渐改变数据分布。
生成模型架构: 稳定扩散通常是在生成模型的框架下实现的。生成模型是一类深度学习模型,用于学习数据的分布,并生成具有相似分布的新样本。在稳定扩散中,生成模型的架构可能采用了类似于生成对抗网络(GANs)的结构,其中包括生成器和判别器。
训练过程: 训练稳定扩散模型涉及到通过样本数据来学习模型参数,使得模型能够逐步生成与样本数据相似的数据。这可能包括通过最大似然估计等方法来优化模型参数。
数值方法: 由于稳定扩散涉及到对复杂分布的逐步生成,其中可能包括数值方法来有效地处理和优化生成过程。这可能包括数值稳定性的考虑和一些近似方法。
Stable Diffusion 技术是 Diffusion 模型的改进版本,它通过引入潜在向量空间(Latent Vector Space)来解决传统 Diffusion 模型在速度和效率上的瓶颈。这项技术不仅可以专门用于文本生成图像(Text-to-Image)任务,还可以广泛应用于图像生成图像(Image-to-Image)、特定角色生成、图像超分辨率(Super-Resolution)以及图像上色等多个计算机视觉领域。
下图是一个基本的文生图流程,把中间的 Stable Diffusion 结构看成一个黑盒,那黑盒输入是一个文本串“paradise(天堂)、cosmic(广阔的)、beach(海滩)”,利用这项技术,输出了最右边符合输入要求的生成图片,图中产生了蓝天白云和一望无际的广阔海滩。
Stable Diffusion 核心思想是通过利用文本中包含的图像分布信息,将一张纯噪声的图片逐步去噪,最终生成一张与文本描述相匹配的高质量图像。这一过程的关键在于将人类可读的文本信息转换为机器可理解的数字表示,并使用这些数字表示来指导图像生成的过程。
文本编码器(Text Encoder) 在 Stable Diffusion 系统中,文本编码器(Text Encoder)是第一个关键模块。它的主要任务是将人类输入的文字字符串转换为计算机能够理解的数字表示,即语义向量(Semantic Vector)。文本编码器通常使用预训练的语言模型,如 CLIP(Contrastive Language-Image Pre-training),来理解文本的含义,并将其转换为一系列具有输入文字信息的语义向量。
🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员
✨ 本系列打算持续跟新小红书近期的春秋招笔试题汇总~
💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导
👏 感谢大家的订阅➕ 和 喜欢💗
📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。
文章目录 01.盛夏送礼物题目描述输入格式输出格式样例输入样例输出数据范围题解参考代码 02.K小姐的旅行笔记题目描述输入格式输出格式样例输入样例输出数据范围题解参考代码 03.K小姐的博客点赞统计问题描述输入格式输出格式样例输入样例输出数据范围题解参考代码 写在最后📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。 01.盛夏送礼物 题目描述 K小姐是一名知名博主,她在某个盛夏的午后决定给她的粉丝送一些小礼物。她有 n n n 名粉丝,编号从 1 1 1 到 n n n,但她只能选择其中 k k k 名送礼物。为了公平起见,她决定选择其中对她支持力度最大的前 k k k 名粉丝。如果有两名粉丝的支持力度相同,则优先选择点赞数更多的粉丝;如果点赞数也相同,则优先选择编号更小的粉丝(因为这意味着Ta关注K小姐的时间更早)。
每名粉丝如果给K小姐点一次赞,则对K小姐的支持力度就增加 1 1 1 点;如果收藏K小姐的一篇文章,则对K小姐的支持力度增加 2 2 2 点。
现在K小姐想知道,她应该选择哪 k k k 名粉丝送出礼物,你能帮帮她吗?
输入格式 输入包含 n + 1 n+1 n+1 行。
第一行包含两个正整数 n , k ( 1 ≤ k ≤ n ≤ 1 0 5 ) n,k\ (1 \leq k \leq n \leq 10^5) n,k (1≤k≤n≤105),分别表示对K小姐有过支持的粉丝个数,以及K小姐选择送礼的粉丝个数。
二叉树(1):深入理解数据结构第一弹——二叉树(1)——堆-CSDN博客
二叉树(2):深入理解数据结构第二弹——二叉树(2)——堆排序及其时间复杂度-CSDN博客
前言:
在前面我们讲了堆及其应用,帮助我们初步了解了二叉树的一些原理,但那与真正的二叉树仍有不同,今天我们就来正式学习一下二叉树的基本结构及其基本操作
目录
一、什么是二叉树?
二、二叉树的节点结构
三、二叉树的遍历
前序遍历:
中序遍历:
后序遍历:
四、二叉树的基本操作
1、创建二叉树
2、前序、中序、后序
3、求二叉树的节点个数
4、求二叉树叶子节点的个数
5、树的高度
6、二叉树第k层的节点个数
7、二叉树查找值为x的节点
五、完整代码实例
总结
一、什么是二叉树? 在前面的文章中我们已经提到过二叉树的结构及其特点,这里我们不过多赘述,有不理解的可以点文章开头的链接去前面看一下
二、二叉树的节点结构 二叉树有左右子树之分,且二叉树与我们所学的其他数据结构不同的点在于,之前我们所学的都是各类插入或者删除等等,但是二叉树需要做的操作是运用递归遍历,所以二叉树的节点结构与之前几个有很大不同
typedef int TreeDataType; typedef struct Tree { TreeDataType a; struct Tree* left; struct Tree* right; }Tree; 节点结构里面定义有两个递归,是为了方便后面的遍历
三、二叉树的遍历 二叉树的遍历是我们学习二叉树首先要了解的东西,我们都知道二叉树其实就是一串数组,那我们是如何访问他们的呢?这里就牵扯到了遍历顺序的问题。
二叉树的遍历有三种形式:前序、中序和后序
前序遍历: 特点:按照“根-左-右”的顺序遍历二叉树。特点:首先访问根节点,然后递归地前序遍历左子树,最后递归地前序遍历右子树。应用:常用于复制一棵树、计算表达式的值等。 中序遍历: 特点:按照“左-根-右”的顺序遍历二叉树。特点:先递归地中序遍历左子树,然后访问根节点,最后递归地中序遍历右子树。应用:常用于二叉搜索树,可以得到一个递增的有序序列。 后序遍历: 特点:按照“左-右-根”的顺序遍历二叉树。特点:先递归地后序遍历左子树,然后递归地后序遍历右子树,最后访问根节点。应用:常用于释放二叉树的内存空间,或者计算表达式的值。 例如:
四、二叉树的基本操作 我先把主函数给出,接下来就将按照主函数中的这些功能一步一步来实现
int main() { Tree* root = CreatTree(); //前序 printf("前序:"); PrevTree(root); printf("\n"); //中序 printf("中序:"); HalfTree(root); printf("\n"); //后序 printf("
👨💻作者简介:👨🏻🎓告别,今天
📔高质量专栏 :☕java趣味之旅
📔(零基础)专栏:MSQL数据库
欢迎🙏点赞🗣️评论📥收藏💓关注
💖衷心的希望我的📙作品能给大家带来收获。
🎊前言: 让我们如大自然般🌱悠然自在😊地生活一天吧,
别因为有坚果外壳或者蚊子翅膀落在铁轨上🛤️而翻了车🚆。让我们该起床时🛏️就赶紧起床🛏️,
该休息🛏️时就安心休息🛏️,
保持安宁而没有烦扰的心态;身边的人要来就让他来,要去就让他去,
让钟声🕰️回荡,让孩子👼哭喊—
下定决心好好地过一天。
🙏希望大家都可以过好每一天。也🙏希望我的博客,能给大家带来💯收获。
1. 数据库的操作 1.1 显示当前的数据库 SHOW DATABASES;//输入的单词之前要带有空格,多个空格是可以的,至少要有一个,最后要带上分号,而且必须是英文分号,要大写就全部大写,要不是大写就全部小写 以上的四个就是MySQL自带的数据库“系统库”;这几个系统库不能乱搞,容易把数据库给搞嘎了.
set?是什么?
在这里是集合的意思
sec (second)秒
如果看到0.00 sec的意思,花的时间小于10毫秒,而不是没花时间!
当我们出错时,如下图
会告诉我们在哪里出错,在错误最后是最核心信息
1.2 创建数据库 创建的数据库名字,要求不能和SQL的“关键字”重复,如果实在想用关键字作为数据库名,可以使用反引号,把这个名字引起来,反引号键盘的esc下面
语法: create database;
后续创建数据库的时候,建议大家,使用utf 8作为字符集,否则MySQL 5.7默认字符集是拉丁文不支持中文,MySQL 8默认好像就是utf 8了
utf8 不包含 emoji 表情
utf8mb4 是完全体 utf8 (mysql 独有的)
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name 说明: 大写的表示关键字 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 示例:
随着组织机构进行数字化转型,为了应对日益增长的应用程序和数据需求,许多团队不得不将许多单一用途的数据技术添加到技术堆栈中来解决各种数据处理需求一一事务数据库、缓存、专用搜索引擎、流处理器、时间序列数据的数据库、专用的设备存储数据库等等——从而创建了一系列技术和系统组件,随着交互的指数级增加,需要不断进行设计、测试、监控、维护和安全保护。这导致了完全割裂的开发体验,增加了复杂性并严重减缓了创新速度。
MongoDB 开发者数据平台通过提供统一的数据处理方式,来帮助组织成规模地推动创新,该方式涵盖了事务工作负载、应用程序驱动分析、全文搜索、增强型人工智能体验、流数据处理等,优先考虑了直观的开发者体验,并自动化了大规模的安全性、弹性和性能。
研究估计,在未来几年内将出现 7.5 亿个应用程序,而开发者是创新的关键。当今世界,软件和数据结合的能力通常决定了一家企业是崭露头角还是屹立不倒。
由开发者构建、并服务于开发者的 MongoDB,现在是全球增长最快的上市数据库公司之一。MongoDB 已经投入了超过 10 亿美元用于研发,并与全球所有主要云计算和技术公司建立了合作伙伴关系。MongoDB 在全球 100 多个国家和地区拥有数万家客户。自 2007 年以来,MongoDB 数据库平台的下载量达数亿次,MongoDBUniversity 课程已培养了数百万名开发者。
我们的荣誉 IDC 对 MongoDB 的评价:“在保持以开发者为导向和非关系型数据库特色的同时,不忘初心,坚持创新,探索新的方向。”
Gartner 将 MongoDB 评为 2022 年和2023年 Gartner 云数据库管理系统魔力象限中的领导者。这是对 MongoDB 在云数据库管理领域卓越地位的认可。
Forrester将MongoDB 评为《Forrester Wave: Translytical Translytical DataPlatforms, Q4 2022》中的领导者,这是对 MongoDB 在跨越性数据平台领域的卓越地位的认可。
我们的产品 MongoDB Atlas
MongoDB Atlas 是 MongoDB 公司提供的 MongoDB 云服务,由 MongoDB 数据库的开发团队构建和运维,可以在 AWS、Microsoft Azure、Google CloudPlatform 云平台上轻松部署、运营和扩展。MongoDB Atlas 内建了 MongoDB安全和运维最佳实践,可自动完成基础设施的部署、数据库的构建、高可用部署、数据的全球分发、备份等既费时又需要大量经验运维的工作,让您通过简单的界面和API就可以完成这些工作,由此您可以将更多宝贵的时间花在构建您的应用上。立即试用 https://www.mongodb.com/zh-cn/cloud/atlas/register
借助 MongoDB Atlas,您可以更快地满足现代应用程序的需求,加速上市时间,同时减少数据基础架构的复杂性:
● Atlas 提供了统一、直观和优雅的数据处理方式,从灵活、易于使用且与现代开发方法一致的文档数据模型开始,为开发者提供了一致的体验。
目录
一、上传、解压&配置
(一)上传
(二)解压
(三)配置hadoop系统环境变量
1.配置hadoop环境变量
2.让环境变量生效
3.验证hadoop系统环境变量
二、修改配置文件
(一)前置介绍
(二)更改配置文件
1.配置Hadoop集群主机点
2.修改core-site.xml文件
3.修改hdfs-site.xml文件
4.修改mapred-site.xml文件
5.修改yarn-site.文件
6.修改slaves文件
三、分发
(一)分发hadoop安装目录
(二)分发系统变量文件
四、启动集群
(一)格式化集群
(二)启动集群
(三)通过UI查看Hadoop运行状态
本文是以root身份来控制集群启停的,后面会出一篇以hadoop用户来控制集群启停博客。
hadoop2.7.3.tar.gz 安装包提取
链接:https://pan.baidu.com/s/1W3TidAVddQZ4n5Lm2NJB_Q 提取码:ay17
一、上传、解压&配置 (一)上传 1.上传hadoop安装包到hp1节点中
(二)解压 1.解压缩安装包到/export/server/中
tar -zxvf hadoop-2.7.3.tar.gz -C /export/server/
2.将 hadoop-2.7.3 改名为hadoop
首先进入相应目录
然后将 hadoop-2.7.3 改名为hadoop,命令为
mv hadoop-2.7.3 hadoop
(三)配置hadoop系统环境变量 1.配置hadoop环境变量 vi /etc/profile
在里面添加如下内容:
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2.让环境变量生效 为了让系统变量文件中添加的内容生效,执行 “ source /etc/profile ”命令初始化系统环境变量,使添加的hadoop系统环境变量生效。
3.验证hadoop系统环境变量 在虚拟机hp1任意目录执行 “ hadoop version ” 命令,查看当前虚拟机中hadoop的版本号
数据库的基本概念数据库的基本概念-CSDN博客
1.1 什么是数据库 数据库(database)是用来组织、存储和管理数据的仓库。
当今世界是一个充满着数据的互联网世界,充斥着大量的数据。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。
为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。用户可以对数据库中的数据进行新增、查询、更新、删除等操作。
1.2 常见的数据库及分类 市面上的数据库有很多种,最常见的数据库有如下几个:
MySQL 数据库(目前使用最广泛、流行度最高的开源免费数据库;Community + Enterprise)
Oracle 数据库(收费)
SQL Server 数据库(收费)
Mongodb 数据库(Community + Enterprise)
其中,MySQL、Oracle、SQL Server 属于传统型数据库(又叫做:关系型数据库 或 SQL 数据库),这三者的设计理念相同,用法比较类似。
而 Mongodb 属于新型数据库(又叫做:非关系型数据库 或 NoSQL 数据库),它在一定程度上弥补了传统型数据库的缺陷。
数据库的特点? 持久化存储数据:数据库允许你将产品信息和订单数据持久地存储在硬盘上。这意味着即使在关机或断电后,数据也不会丢失,并且可以在需要时重新加载。方便数据检索和更新:数据库提供了强大的查询语言和索引功能,使得你可以轻松地检索和更新存储的数据。例如,你可以使用SQL查询语言来查找特定类型的产品,或者更新订单状态为已发货。保证数据完整性:数据库提供了机制来确保数据的完整性。你可以定义约束条件,例如主键约束、唯一约束和外键约束,以防止数据的重复、不一致或无效。保证数据安全性:数据库提供了安全性功能,以确保只有授权用户可以访问数据。你可以设置访问权限和用户身份验证机制,以控制谁可以读取、写入或修改数据库中的数据。 如果我们像平时以变量的形式来存储数据那么会出现什么问题? 变量是有生命周期的,无法持久化存储,数据管理困难(而数据库管理系统解决这个问题),数据共享和多用户访问问题:每个用户都有自己的独立变量,无法共享和同步数据。
而数据库是每个用户在程序中修改数据的时候,数据都会回调给数据库,把数据也给修改,此时其他人看到的数据是从数据库中查询得到了,也就是更改过的。
1.3 传统型数据库的数据组织结构 数据的组织结构:指的就是数据以什么样的结构进行存储。
在传统型数据库中,数据的组织结构分为数据库(database)、数据表(table)、数据行(row)、字段(field)这 4 大部分组成。
除了四大部分外数据库的组成应还有
索引:用于快速定位和访问数据的数据结构,可以加快数据检索和查询的速度。 CREATE INDEX idx_customers_name ON Customers (Name); //给予Name索引后, SELECT * FROM Customers WHERE Name = 'John Doe';//用Name来作为判断信息
那么数据库就可以直接定位到索引中名为“John Doe" 的客户姓名匹配的数据行,而不需要对整个表进行全盘扫描。这样可以大大减少查询的时间和资源消耗。
视图:基于一个或多个数据表的查询结果集,可以简化复杂的数据查询和提供数据安全性。 视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。
视图是一种 虚拟表 ,本身是 不具有数据 的,占用很少的内存空间,它是 SQL 中的一个重要概念。
① 定义生成公钥私钥的文件名称;若不定义名称,密钥文件会以默认文件名存储在默认地址。(一般的,默认存储地址为C:\Users\用户名\.ssh,如图)
;若定义了名称,密钥文件会以定义好的名称为文件名,存储在当前文件夹内
如图示,在F:\gitssh文件夹下运行SSH秘钥生成命令,并设置了文件名testssh,就会在F:\gitssh目录下生成私钥和公钥文件。
(需要注意的是,若自定义了名称,生成密钥之后还是需要把文件移动到默认目录?)
② 设置密码,不需要设置时直接回车即可
③ 代表密钥生成成功
4. 根据图文提示找到存储密钥的文件,.pub文件中就是生成的公钥,将该公钥配置到码云、GitLab、Github等代码托管网站或服务器上(一般代码托管网站配置SSH公钥都在个人设置(Settings)中,找到SSH关键字,将当前获得的公钥填入,title(标题)随意填写,保存就行)。若果把密钥文件存储在了默认文件夹,找起来会比较麻烦,可以直接命令查找:
cat ~/.ssh/id_rsa.pub
5. 测试公钥是否配置成功**(输入以下命令,会自动在.ssh目录生成known_hosts文件把私钥配置进去)**
若未配置,会提示是否将对应私钥配置到****known_hosts文件,请输入yes;若已配置,则提示successfully
ssh -T git@主机名
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
性能优化 1.webpack打包文件体积过大?(最终打包为一个js文件)
2.如何优化webpack构建的性能
3.移动端的性能优化
4.Vue的SPA 如何优化加载速度
5.移动端300ms延迟
6.页面的重构
所有的知识点都有详细的解答,我整理成了280页PDF《前端校招面试真题精编解析》。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中…(img-b8XpN5UP-1712490599969)]
目录
一、hive的概念和由来
(1)Hive的概念
(2)Hive的由来
二、Hive的优缺点
三、Hive的组件架构
(1)Hive与hadoop的关系
(2)Hive与数据库的异同
四、基础环境准备和安装准备
(1)Hive组件的部署规划和软件包路径如下:
(2)解压安装文件
(1)关闭防火墙
(2)卸载 Linux 系统自带的 MariaDB。
(3)安装MySQL的mysql common、mysql libs、mysql client、mysql server软件包
(4)修改 MySQL 数据库配置,在/etc/my.cnf 文件中添加以下数据(在symbolic-links=0 配置信息的下方添加数据)
(5)启动mysql数据库
(启动后查看mysql的状态(一定是要running))编辑(6)查看mysqld自动提供给的随机密码
(7)MySQL 数据库初始化。
(8)添加 root 用户从本地和远程访问 MySQL 数据库表单的授权。
五、配置Hive组件
(1)更改环境变量
(2)修改 Hive 组件配置文件。
(3)通过 vi 编辑器修改 hive-site.xml 文件实现 Hive 连接 MySQL 数据库,并设定 Hive 临时文件存储路径。
五、初始化元数据
编辑
一、hive的概念和由来 (此图为Apache Hive官网的截图,具体网址为Apache Hive)
(1)Hive的概念 Hive是基于Hadoop的数据仓库工具,可以用来对HDFS中存储的数据进行查询和分析。Hive能够将HDFS上结构化的数据文件映射为数据库表,并提供SQL查询功能,将SQL语句转变成MapReduce任务来执行。Hive通过简单的SQL语句实现快速调用MapReduce机制进行数据统计分析,因此不必专门开发MapReduce应用程序即可实现大数据分析。
Hive对存储在HDFS中的数据进行分析和管理,它可以将结构化的数据文件映射为一张数据库表,通过SQL查询分析需要的内容,查询Hive使用的SQL语句简称Hive SQL(HQL)。Hive的运行机制使不熟悉MapReduce的用户也能很方便地利用SQL语言对数据进行查询、汇总、分析。同时,Hive也允许熟悉MapReduce开发者们开发自定义的Mappers和Reducers来处理内建的Mappers和Reducers无法完成的复杂的分析工作。Hive还允许用户编写自己定义的函数UDF,用来在查询中使用。
(2)Hive的由来 Hive起源于Facebook(一个美国的社交服务网络)。Facebook有着大量的数据,而Hadoop是一个开源的MapReduce实现,可以轻松处理大量的数据。但是MapReduce程序对于Java程序员来说比较容易写,但是对于其他语言使用者来说不太方便。此时Facebook最早地开始研发Hive,它让对Hadoop使用SQL查询(实际上SQL后台转化为了MapReduce)成为可能,那些非Java程序员也可以更方便地使用。hive最早的目的也就是为了分析处理海量的日志。
二、Hive的优缺点 (图中Hive的缺点明显是可控性差和因为使用语句的有限(只使用到SQL语句,逻辑简单,所以表达能力有限)
三、Hive的组件架构 (1)Hive与hadoop的关系 Hive构建在Hadoop之上,HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的。Hive读取的所有数据都是存储在Hadoop文件系统中。Hive查询计划被转化为MapReduce任务,在Hadoop中执行。
(2)Hive与数据库的异同 由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。MapReduce开发人员可以把自己写的Mapper和Reducer作为插件支持Hive做更复杂的数据分析。它与关系型数据库的SQL略有不同,但支持了绝大多数的语句(如DDL、DML)以及常见的聚合函数、连接查询、条件查询等操作。
一、GestureDetector 1. 简介 GestureDetector主要用于检测单指手势,例如单击、长按、滑动等,不支持多指手势。
2. SimpleOnGestureListener 内部类 GestureDetector.SimpleOnGestureListener 是用于处理手势事件的辅助类,它包含了一系列回调方法,用于处理不同类型的单指手势事件。下面是对每个回调方法的简要介绍:
onDown(MotionEvent e): 当用户按下(Down)手指时触发。这个方法返回 true 表示事件被消费了,false 表示未被消费。
onShowPress(MotionEvent e): 当用户按下并保持按压一段时间时触发。它表示按下动作已被识别,但尚未发生其它任何行为。
onSingleTapUp(MotionEvent e): 当用户轻击屏幕时触发。这个方法返回 true 表示事件被消费了,false 表示未被消费。
onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY): 当用户在屏幕上滚动时触发。它提供了滚动开始和结束时的事件信息,以及在X和Y方向上的距离差。
onLongPress(MotionEvent e): 当用户长按屏幕时触发。
onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY): 当用户迅速滑动手指并松开时触发。它提供了滑动开始和结束时的事件信息,以及在X和Y方向上的速度。
onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY): 当用户在屏幕上滚动时触发。与第四个回调方法不同,这个方法在滚动过程中持续触发,而不仅仅是在滚动结束时触发。
onDoubleTap(MotionEvent e): 当用户双击屏幕时触发。
onDoubleTapEvent(MotionEvent e): 当双击事件包含按下、移动和抬起动作时触发。通常与 onDoubleTap() 结合使用,以处理更复杂的双击手势。
onSingleTapConfirmed(MotionEvent e): 当确认发生了单击事件时触发。与 onSingleTapUp() 不同的是,这个方法确保了事件是单击事件而不是双击事件。
这些回调方法提供了处理各种类型手势事件的灵活性,可以根据需求选择实现相应的方法来处理手势事件。
3. 示例 import android.
Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止 文章目录 `Mysql`启动报错:本地计算机上的`mysql`服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止1. 备份`mysql`的`data`文件夹2. 重新构建 `Windows`的`Mysql` 服务2.1 管理员权限进入`CMD`2.2 删除 `Mysql` 服务 3. 不指定配置文件导致的后果3.1 新创建了`Mysql`服务3.2 新建用户3.3 无法生效配置文件 4. 总结5. 参考博客 背景:在修改了 my.ini 配置之后,重启 Windows 的 Mysql 服务后,遇到的mysql启动报错。
1. 备份mysql的data文件夹 Tips: 如果你是选择默认安装,一般 Mysql的 data 文件夹路径在 C:\ProgramData\MySQL\MySQL Server 8.0\Data
Mysql 默认安装时,会有两个关键路径 (C:\ProgramData\MySQL\MySQL Server 8.0 和 C:\Program Files\MySQL\MySQL Server 8.0)这两个路径 前者是 数据库数据,配置文件,数据库日志 等 Mysql 核心数据存储地,后者是 Mysql 软件本身,即提供服务的程序。如果你不想要丢失核心数据,请一定要备份好 data 文件夹 如果你没有做好 mysql 的data 文件夹备份操作,请不要执行以下操作
2. 重新构建 Windows的Mysql 服务 2.1 管理员权限进入CMD Step-1:按 Win + s ,输入cmd
目录 0 专栏介绍1 Midjourney Bot常用命令2 Midjourney绘图指令格式3 Midjourney绘图指令参数3.1 模型及版本3.2 画面比例3.3 风格化3.4 图片质量3.5 混乱值3.6 随机数种子3.7 重复贴图3.8 停止3.8 垫图权重3.9 提示词权重分割 推荐产品 0 专栏介绍 🔥Midjourney是目前主流的一款AI生成图像工具,它风格多样,细节丰富,创作自由,涵盖文生图、图生图、图图结合等模式。对于艺术创作者来说,它可以扩展能力、提高效率,增加创意;对于大众爱好者来说,没有任何美术基础也可以进行艺术创作!本专栏详细介绍了Midjourney的基本命令参数、多种生图方式,并结合大量不同风格的实际案例帮助读者快速入门AI创作!
⚡专栏地址:Midjourney从入门到实战
1 Midjourney Bot常用命令 Midjourney Bot常用命令如下所示
/ask:可以向机器人提问/blend:图像混合模式,2-5张图片溶图合成新图,尽量保持宽高比一致/describe:上传图片生成4个文本描述/fast:快速出图模式/help:帮助项,引导式帮助使用/imagine:最主要命令,生成图片/info:查看基本信息,如订阅状况工作模式等/invite:获得一个邀请链接/prefer option set:创建自定义变量/prefer option list:列出之前设置的所有变量/prefer auto_dm:当开启时,生成完成后将通过MJ机器人给你发送私信,其中会包含Job ID和Seed值/prefer suffix:指定要添加每个提示末尾的自定义变量,相当于把你的自定义变量设置成默认值/prefer remix:切换到混合模式,每次点V都可以输入提示词/private:切换到隐私模式,每月60美元会员才有效/public:切换到公开模式,生成的图片都是公开的可以看到提示词/relax:切换到慢速出图模式,如果快速模式耗尽就选择慢速/settings:查看和调整出图的模式设置/show:查看指定job_id的出图/stealth:切换到隐私模式(应该是跟private命令一样的)/subscribe:付费订阅链接 2 Midjourney绘图指令格式 聊天窗口输入/imagine命令后就可以在prompt的输入框内填写自己的提示词,imagine提示词基本格式为
参考图片+文本提示词+参数 其中
参考图片:点聊天窗口左边的+按钮上传后回车即可,然后把图片拖入prompt输入框,也可以点击图片-在浏览器中打开-复制图片网址。生成图片时会参考图片的构图、内容、颜色等
文本提示词:由
主体描述:告诉Midjourney要画的主体是什么,是画人、动物还是场景,例如:一只站在雪地里的红色中国龙环境背景:人和物所处的背景描述,例如:一个开满鲜花的花园风格参考:是写实风格、皮克斯、赛博朋克、山水画还是水墨画等镜头构图:超广角、俯瞰图、正视图、半身像、微距等光线灯光:电影光、自然光、侧光、逆光、柔光、正面照明等主色调:红色、蓝色、金银色调、黄黑色调、多彩色调等质量:高细节、高品质、高分辨率、32k uhd等渲染:Unreal Engine、Unity、Octane render、C4D等 等组成
来自提示词生成网站:Prompt Generator
第三部分参数的含义请参考第三节
3 Midjourney绘图指令参数 参数是Midjourney特定的尾缀,格式为
--参数名 参数值 注意参数名后要有空格,--之前也要有空格和其他参数分开
3.1 模型及版本 目前可用模型主要包含Midjourney和NiJi两个模型,Midjourney模型比较全面,NiJi模型则更适合制作动漫和插画风格。
Midjourney模型可以使用--version或简写--v参数来指定模型,可用值包括1, 2, 3, 4, 5, 6。--v 6是最新的模型,擅长解释自然语言提示,分辨率更高。
Midjourney v6 的测试效果 NiJi模型则使用--niji 5和--niji 4,niji5还包含两个新的风格化参数,分别是更有3D效果的--style expressive和可爱风格的--style cute
国内用户在使用 docker 时,想必都遇到过镜像拉取慢的问题,那是因为 docker 默认指向的镜像下载地址是 https://hub.docker.com,服务器在国外。
网上有关配置 docker 国内镜像源的教程很多,像 腾讯、阿里、网易 等等都会提供镜像仓库,自行配置下即可。
一般配置完镜像源后,拉取镜像都会快不少,但是目前我配置了镜像源了,拉取镜像速度还是非常的慢。最终发现是配置的镜像源没有对应的镜像仓库(ghcr.io)的资源。
我的解决方式 由于我需要拉取的镜像使用者比较少,国内的源都没有资源,最终还是找了一台能上外网的机器,拉取镜像后保存下来再转移到目标机器。
使用了 docker 的 save load 转移。
# 能上外网的机器拉取并保存 docker pull 镜像名:tag docker save 镜像名:tag > 1.tar # 目标机器 docker load < 1.tar 这里提一下,若是没有机器能够上外网,可以试试 DaoCloud ,不过我试了貌似没什么用。
镜像仓库、镜像源 首先需要了解下镜像仓库和镜像源
名词解释镜像仓库镜像的存放地址,类似 docker.io, ghcr.io 等镜像源国内提供的加速器,例如网易的 http://hub-mirror.c.163.com 等 常见的镜像仓库
docker.io:Docker Hub 官方镜像仓库,也是 Docker 默认的仓库 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
174 道运维工程师面试题128道k8s面试题108道shell脚本面试题200道Linux面试题51道docker面试题35道Jenkis面试题78道MongoDB面试题17道ansible面试题60道dubbo面试题53道kafka面试18道mysql面试题40道nginx面试题77道redis面试题28道zookeeper 总计 1000+ 道面试题, 内容 又全含金量又高
文章目录 在 Ubuntu 20.04 安装 Redis1. 先切换到 root 用户2. 使用 apt 命令来搜索 redis 相关的软件包3. 使用 apt 命令安装 redis4. 输入命令检验是否安装成功5. 需要手动修改配置文件,改 ip6. 重新启动服务器7. 使用 redis 自带的客户端来连接服务器 在 Ubuntu 20.04 安装 Redis 1. 先切换到 root 用户 在 Ubuntu 20.04 中,可以通过以下步骤切换到 root 用户:
输入以下命令,以 root 用户身份登录: sudo su - 按回车键,并输入当前用户的密码(即具有 sudo 权限的用户的密码)如果密码正确,将会切换到 root 用户,并且提示符会变为以 root@yourhostname 格式显示
注:这里 root@后面的是一串字符串,与博主使用的是阿里云的服务器有关
2. 使用 apt 命令来搜索 redis 相关的软件包 apt search redis 3. 使用 apt 命令安装 redis apt install redis 4.
在写一个代码生成可执行文件的过程需要经过编译和链接,编译又要经过三部:预处理,编译,汇编。
#define定义的变量和宏就是在预处理阶段会处理的。
一个简单的宏定义:
#include<stdio.h>; #define Max(a,b) a>b?a:b int main() { int x = 4, k = 9; printf("%d", Max(x, k)); } Max:宏名
a,b:宏参数
a>b?a:b:宏体
宏定义有些类似函数,Max(a,b)会被替换为 a>b?a:b
比如这里printf("%d",Max(x,k));在预处理阶段会被替换为printf("%d",x>k?x:k);
注意:在#define定义的宏或变量后面不能加分号(;)
例如: 1.运算符优先级处理 思考下面输出结果:
#define Mul(a,b) a*b int main() { int x = 4, k = 3; printf("%d", Mul(x, k + 2)); return 0; } 这里printf("%d", Mul(x, k + 2));会被替换为printf("%d",x*k+2);
所以结果为14,注意这里只是一一替换在预处理阶段进行,结果并不是20,而计算阶段是再生成的.exe后缀文件执行以后的事,所有在定义宏的时候,为了达到想要的效果我们通常在宏体里面加一些括号来避免这种问题的出现
例如:
#define Mul(a,b) ((a)*(b)) 2.带副作用的宏参数 在给宏传参的时候我们尽量避免传一些前缀或后缀++ --这样的参数,这是一些带有副作用的参数
例如:
#define Max(a,b) ((a)>(b)?(a):(b))//添加括号是解决优先级带来的潜在问题,上一个板块讲到 int main() { int x = 2, k = 3; printf("
关键 使用到 pdf.js 第一步: 下载pdf.js 文件到项目根目录
也就是这个文件
附下载地址:uni-app-pdf: 在uni-app中使用pdf.js实现在手机上打开pdf 也可通过其他方法下载 如npm 第二步: 拷贝hybrid文件到项目根目录
第三步: 新建 viewPdf.vue文件
<template> <view> <web-view :src="webViewSrc"></web-view> </view> </template> <script setup lang="ts"> import { ref, getCurrentInstance } from 'vue'; import config from "@/utils/http/config.js"; import { onLoad } from '@dcloudio/uni-app'; const { proxy } : any = getCurrentInstance() let Url = ref() Url.value = config.filesUrl.dev let webViewSrc = ref() let viewerUrl = '/hybrid/html/web/viewer.html'; // 根目录文件地址 onLoad((option : any) => { // option.
目录 基础篇1. 什么是Apache Flink?2. Flink与Hadoop的区别是什么?3. Flink中的事件时间(Event Time)和处理时间(Processing Time)有什么区别?4. Flink的容错机制是如何实现的?5. 什么是Flink的窗口(Window)?6. Flink支持哪些类型的窗口?7. Flink中的状态后端(State Backend)是什么?8. Flink的水印(Watermark)是什么?9. Flink的时间窗口触发器(Trigger)是什么?10. Flink与Kafka集成时如何保证事件顺序?11. Flink的处理延迟数据如何处理?12. Flink中的状态(State)是什么?13. Flink中的数据处理时间特性有哪些?14. Flink的Exactly-Once语义是如何实现的?15. Flink中的任务链(Task Chaining)是什么?16. Flink的容错机制对性能有何影响?17. Flink中的批处理和流处理有什么区别?18. Flink的窗口触发器(Trigger)有哪些类型?19. Flink支持哪些连接器(Connector)?20. Flink的状态后端(State Backend)对性能的影响如何?21. Flink的事件时间(Event Time)处理如何处理乱序事件?22. Flink的状态后端(State Backend)有哪些可选项?23. Flink如何处理流处理应用程序的版本升级?24. Flink的事件时间窗口与处理时间窗口有什么区别?25. Flink的容错机制在大规模数据处理中有何优势?26. Flink中的时间特征(Time Characteristics)有哪些选项?27. Flink的数据源(Source)可以是哪些类型?28. Flink支持哪些类型的窗口函数(Window Function)?29. Flink的广播变量(Broadcast Variable)是什么?30. Flink中的流水线并行执行(Pipeline Parallelism)是什么?31. Flink中的重启策略有哪些?32. Flink的表格API(Table API)和DataStream API有何区别?33. Flink如何处理数据倾斜(Data Skew)?34. Flink的依赖管理是如何工作的?35. Flink的Watermark机制可解决哪些问题?36. Flink的连续处理(Continuous Processing)和迭代处理(Iterative Processing)有何区别?37. Flink的UCR(Unbounded Continuous Rows)是什么?38. Flink的前后台压力(Front and Back Pressure)是什么?39. Flink的迭代(Iteration)是如何工作的?40. Flink支持哪些机器学习和图计算库?41. Flink的重启策略有哪些?42. Flink的表格API(Table API)和DataStream API有何区别?43. Flink如何处理数据倾斜(Data Skew)?44.
*作者简介:国内985在读博士生,人工智能、机器学习、云原生研究方向,发表多篇高水平CS论文。
*博客介绍:主要分享攻读博士期间的所见所闻,欢迎交流合作科研项目。
导言:当下,交通问题已成为城市化进程中的一个重要挑战。交通流量管理和道路安全一直是政府和交通相关机构关注的焦点。然而,随着人工智能(AI)技术的快速发展,我们可以利用AI赋能智能交通,改善交通流量管理和道路安全。本文将从概述、AI在交通领域的重要性、AI技术的关键应用以及一个具体的AI赋能案例demo来探讨这个话题。
标题:AI赋能智能交通:改善交通流量管理和道路安全
目录
1. 概述
2. AI在当下时代交通领域的重要性
3. AI技术在当下时代交通领域的关键应用
4. AI赋能交通流量预测案例Demo
5. 总结
1. 概述 随着城市化进程的加快和车辆数量的不断增加,交通流量管理和道路安全成为现代社会面临的重要挑战。然而,人工智能(AI)的快速发展为解决这些问题提供了新的机会。AI技术可以在交通领域发挥关键作用,提供智能化的解决方案,以改善交通流量管理和增强道路安全性。
2. AI在当下时代交通领域的重要性 AI在当下时代的交通领域扮演着关键角色。它能够处理大量的数据并从中提取有价值的信息,同时具备强大的学习和决策能力。以下是AI在交通领域的重要性:
数据分析和预测:AI可以分析交通数据,包括交通流量、车辆速度和道路状况等信息。通过深入理解交通模式和趋势,AI能够预测未来的交通需求,帮助规划者做出更明智的决策。
实时交通管理:AI可以利用传感器、摄像头和其他设备收集实时交通数据,并将其与历史数据进行比较。基于这些信息,AI可以优化信号灯配时、调整道路流量分配,以最大程度地减少交通拥堵和提高交通效率。
驾驶辅助系统:AI技术可以应用于车辆内部,提供驾驶辅助功能,如自动驾驶、车道保持辅助和智能巡航控制。这些系统可以提高驾驶员的安全性和舒适性,减少交通事故的发生。
3. AI技术在当下时代交通领域的关键应用 在当下时代,AI技术在交通领域有多种关键应用。以下是其中的几个例子:
交通流量预测:AI可以基于历史数据和实时信息预测交通流量。这有助于交通规划者调整道路资源和交通管理策略,以应对不同时间段和区域的交通需求。
信号灯优化:AI可以通过分析交通流量和车辆密度,优化信号灯的配时方案。它可以根据实时数据调整绿灯时间,以减少拥堵和交通等待时间,并提高交通效率。
智能交通监控:AI可以利用摄像头和传感器监控道路交通情况。通过图像识别和模式识别技术,它可以检测交通违规行为、事故发生和交通拥堵等情况,并及时采取措施。
自动驾驶技术:AI在自动驾驶领域发挥着重要作用。通过使用传感器、计算机视觉和深度学习算法,AI可以使车辆自主感知和决策,实现更安全和高效的驾驶体验。
4. AI赋能交通流量预测案例Demo 这部分展示一个AI赋能的交通流量预测实战项目demo,我们将使用Python语言和其流行的机器学习库,如Pandas、scikit-learn和TensorFlow(或Keras)等。由于流量预测可能是一个时间序列预测问题,我们可能会用到一些专门处理时间序列的模型,比如长短期记忆网络(LSTM)。
以下是一个简化版的交通流量预测实战项目demo:
首先,你需要安装必要的库(如果尚未安装):
pip install pandas numpy scikit-learn tensorflow matplotlib 接下来是具体Python代码:
import pandas as pd import numpy as np from sklearn.preprocessing import MinMaxScaler from sklearn.model_selection import train_test_split from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense from tensorflow.