【输入样例】3 2 9 10 6 4 5 7【输出样例】1 8#include <iostream>using namespace std;int main() { int a[15] = {0} ; // 定义数组a,用于标记1-10范围内的数字是否出现过,初始全为0 int t; // 第一阶段:读取前10个输入,标记出现过的数字 for (int i = 1; i 【输入样例】5 32 4 5【输出样例】1 3#include <iostream>using namespace std;int a[1005] = {0}; // 定义标记数组,初始化为0(所有元素未被标记 )int main() { int n, m, t; cin >> n >> m; // 输入n(总范围)和m(待标记元素数量) // 标记阶段:将输入的m个元素在数组a中对应位置设为 i未被标记 cout << i << " "; // 输出该元素 } } return 0;}3.
用于存储数字出现的次数 int k, t; // k 表示输入数字的次数,t 表示输入的数字 cin >> k; // 从标准输入读取输入数字的次数 k // 输入每个数字并进行次数标记 从标准输入读取一个整数到 t t = t + 50; // 将 t 加上 50 ++a[t]; // 将数组 a 中下标为 t 的元素值加 1 } // 遍历每个桶查找出现次数超过一半数字 样例输入10 3 1 3 3 7 2 5 1 2 4 6输出3#include<iostream>using namespace std;int main() { int a[ 从标准输入读取一个整数到 t ++a[t]; // 将数组 a 中下标为 t 的元素值加 1 } int cnt = 0; // 定义计数器 cnt 并初始化为 0 // 遍历每一个桶对出现数字进行计数 ,输出并进行标记 for(int i = 1; i <= n; ++i){ cin >> x; // 从标准输入读取一个整数到 x if(a[x] == 0){
(如 a[5]=1 表示数字 5 出现过)空间换时间:通过 O (1) 时间复杂度完成元素查询与标记统计与筛选计数统计:通过 a[t]++ 统计数字出现次数(第三套代码)补集思想:输出未被标记的元素(第二套代码 例如走过2 7 4 1 8,则请告诉他:3 5 6 9 10没有走过。【输入格式】输入一行,五个数字,表示已经走过的路径编号。【输出格式】输出一行,五个数字,表示没有走过的路径编号。 【输入样例】2 7 4 1 8【输出样例】3 5 6 9 10#include <iostream>using namespace std;int a[15] = {0}; // 定义标记数组,用于标记 样例输入54 1 3 2 3输出4 3 2 1#include <iostream>using namespace std;int a[105] = {0}; // 定义标记数组,用于标记1-100范围内的数字是否出现过 { // 若数组位置i为1,说明数字i出现过 cout << i << " "; // 输出该数字,用空格分隔 } } return 0;}3.
一、知识重点(一)字符桶的本质:数组映射字符核心逻辑:用数组下标映射字符的 ASCII 值,数组元素存储字符出现的次数(或是否出现)。 次数 → 元素值:数组元素值记录该字符出现的次数(或标记是否出现)。(二)字符桶的 3 大典型应用场景1. 统计每个字符的出现次数(字符的统计)2. 找出现次数最多的字符(字符的计数)3. 找未出现的字符(字符的存在)(三)字符桶的关键知识点知识点说明数组与 ASCII 的映射利用字符的 ASCII 码作为数组下标,实现 “字符→次数” 的直接映射桶数组的初始化需覆盖目标字符的 ASCII 【输入样例】6a b b c c c【输出样例】c 3#include<iostream>using namespace std;int main() { int n; // 用于存储输入的字符个数 } } cout << (char)flag << " " << maxx << endl; // 输出出现次数最多的字符及其出现次数,并换行 return 0; }3.
{ 0% { left: 0; } 50% { left: 200px; } 100% { left: 0; } } </style> # Vue 3 的动画 Vue 3 中提供了一些动画的封装,使用内置的 traisition 组件来控制组件的动画。
现代 Web 应用都是由三大件构成,分别是:组件、数据和路由。在一些数据组件之间需要共享的时候,应该如何实现?
这种情况这样处理: $git show HEAD^1 //查看HEAD的第一个父母 $git show HEAD^2 //查看HEAD的第二个父母 当你觉得某个版本是一个有意义的里程碑的时候,你可以为这个版本打一个标记 $git tag V3 5b888 这样就给5b888这个版本打了一个tag,之后就可以使用这个版本来作其他的操作了 如显示详情 $git show V3 创建一个基于V3的分支 $ git branch stable V3 ---- Previous Git学习笔记(2) -- 分支控制(branch)
# h 函数 在 Vue 3 的项目开发中,template 是 Vue 3 默认的写法。 src/pages/about.vue 中使用: <template>
前言 标记清除算法(Mark-Sweep)是一种非常基础和常见的垃圾收集算法,该算法被J.McCarthy等人在1960年提出并成功的发明并应用于Lisp语言。 算法原理 标记清除算法将垃圾回收分为2个阶段,标记阶段和清除阶段。 在标记阶段collector从mutator根对象开始进行遍历,对从mutator根对象可以访问到的对象都打上一个标识,一般是 在对象的header中,将其记录为可达对象。 而在清除阶段,collector对堆内存(heap memory)从头到尾进行线性遍历,如果发现某个对象没有被标记为可达对象,通过读取对象的header 信息,将其回收。 一种可行的实现是,在标记阶段首先通过根节点,标记所有从根节点开始的可达对象。因此,未被标记的对象就是未被引用的垃圾对象。然后在清除阶段清除所有未被标记的对象。
排列清单控制标记可以创建一般的列表、编号列表或加着重号列表,以及定义列表。还可以在一种列表中嵌套另外一种列表。对于概况因特网上的内容,列表特别重要。 DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <html> <head> <meta http-equiv="Content-Type " content="text/html; charset=gb2312"> <title>第3章 排列清单控制标记</title> </head> <body>
登录成功后,需要把这个 token 存储在本地存储里面,留着后续发送数据。实现比较简单,直接把 token 存储到 localStorage 中就行。
认识VUE3 1. Vue3的优势 使用create-vue搭建Vue3项目 1. <script setup>语法糖 script标签添加 setup标记,不需要再写导出语句,默认会添加导出语句 <script setup> const message = 'this is /src', import.meta.url)) } } }) Vue3 状态管理 - Pinia 1. npm init vite@latest 按照官方文档安装 pinia 到项目中 3.
Vue 3 通过拆包,使用最近流行的 monorepo 管理方式,响应式、编译和运行时全部独立了: 在 Vue 3 的组织架构中,响应式独立了出来。 在任何时候,如果希望数据被修改了之后能通知你,都可以单独依赖 Vue 3 的响应式。 # 新的组件 Vue 3 还内置了 Fragment、Teleport 和 Suspense 三个新组件。 # Vue 2 升级 Vue 3 Vue 3 由于新的响应式系统用了 Proxy,会存在兼容性问题。如果你的应用被要求兼容 IE11,就应该选择 Vue 2。 Vue 2.7 会移植 Vue 3 的一些新特性,让你在 Vue 2 的生态中,也能享受 Vue 3 的部分新特性。
/components/Rate.vue'; let score = ref(3); </script> # 组件事件 在 Vue 中,使用 emit 来对外传递事件,这样父元素就可以监听 Rate /components/Rate.vue'; let score = ref(3); function updateScore(num) { score.value = num; } </script
Vue 3 的 reactive 函数可以把一个对象变成响应式数据,而 reactive 就是基于 Proxy 实现的。 watchEffect(() => { console.log('data updated', obj.count, double.value); }); # value setter 在 Vue 3 中还有另一个响应式实现的逻辑,就是利用对象的 get 和 set 函数来进行监听,这种响应式的实现方式,只能拦截某一个属性的修改,这也是 Vue 3 中 ref 这个 API 的实现。 # Vueuse VueUse (opens new window) 趁着这一波 Vue 3 的更新,跟上了响应式 API 的潮流。 VueUse 的官方的介绍说这是一个 Composition API 的工具集合,适用于 Vue 2.x 或者 Vue 3.x,用起来和 React Hooks 很像。
在 jQuery 时代,对于大部分 Web 项目而言,前端都是不能控制路由的,而是需要依赖后端项目的路由系统。通常,前端项目也会部署在后端项目的模板里,对于每次的页面跳转,都由后端开发人员来负责重新渲染模板。
script setup> <script setup> 是为了提高使用 Composition API 的效率而存在的,使用 <script setup> 可以让代码变得更加精简,这也是现在开发 Vue 3
布局标记 首先要介绍的布局标记是div标记,div可以做网页的层也可以做网页的分区。当div做网页的层时可以实现漂浮在网页上的效果,就像我们经常可以在网站里看见的那些漂浮广告。 我们查看一下百度搜索的源码就可以看到,这个页面用的最多的标记就是div,所以也就可以知道这个页面是使用div标签来布局的: ? table标记和div标记一样都是属于网页布局的标记,table主要是用来做表格,table里常用的属性是:border表格的边界线、cellpadding 表格的填充程度、cellspacing 内间距距离 列表标记 首先要介绍的第一个列表是ul无序列表,无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记,ul需要嵌套li实现列表效果。 接下来是ol有序列表同样,有序列表也是一列项目,列表项目使用自增的数字进行标记,所以称为有序列表。有序列表始于
https://juejin.cn/post/6980267119933931551