优选算法(双指针)
1.双指针介绍
双指针算法是一种常用的算法思想,特别适用于处理涉及阵列、链表或字符串等线性数据结构的问题。通过操作两个一个指针来进行导航或操作数据结构,双指针可以最大程度优化解决方案的效率。提高效率并减少空间复杂度。
在Java中使用双指针的核心思想是通过两个变量(通常是索引或节点)来标记处理数据的起点和终点,动态调整它们的位置以实现目标。
2.双指针的基本概念
-
什么是双指针?
-
双指针是指在同一个数据结构上使用双指针(通常是变量或索引)同时移动。
双指针的类型:
1.对撞指针(Two-pointer Technique)
特点
- 两个指针从数据结构的端点出发,向中间移动。
- 另外根据问题要求调整其中一个指针,直到找到满足条件的结果或两个指针满足。
- 适用于集群阵列或需要从端点开始处理的线性数据结构。
应用场景
- 求和问题:在集群队列中找到两个数且相等的目标值。
- 判断回文:验证字符串是否为回文。
- 区间问题:如盛水最多的容器。
2.快慢指针(慢速指针和快指针)
特点
- 指针从同一位置开始,快两个指针的移动速度通常是慢指针的两倍。
- 常用于链表问题,快指针先走缩小范围或提前发现特定条件,慢指针才能准确定位。
- 适用于需要检测循环或寻找特定位置(如链表的中点)的场景。
应用场景
- 环检测:检测链表是否有环。
- 寻找中点:在链表中找到中间节点。
- 删除节点:删除链表中倒数第nnn一个节点。
3.滑动窗口(Sliding Window)
特点
- 两个指针用于表示一个窗口,通常是左指针
left
和右指针right
。 - 右铰链延伸窗口,左铰链收缩窗口,直到窗口满足要求。
- 适用于动态范围问题,如求最短/最短子串。
应用场景
- 终止子串:查找无重复字符的终止子串。
- 最小覆盖子串:查找包含目标字符的最短子串。
- 子储备和问题:如找到和最大某值的最短子储备。
4.固定间隙指针(Fixed Gap Pointers)
-
定义:两个指针之间的距离固定,用于同时遍历不同的元素。
-
适用场景:
- 判断字符串的某种模式匹配。
- 滑动窗口的变体问题。
5. 双向扫描(双向扫描)
-
定义:两个指标分别从两端向中间移动,但条件可能比较复杂,不一定同时向中靠英镑。
-
适用场景:
- 排序索引的双指针应用。
- 字符串匹配问题(如跳过某些字符)。
3.题目讲解
- 283.移动零
- 1089. 复写零
- 202. 快乐数
- 11. 盛最多水的容器
- 611. 有效三角形的个数
- LCR 179. 查找总价格为目标值的两个商品 (原:剑指 offer:和为 s 的两个数)
- 15. 三数之和
- 18. 四数之和
1.移动零
1.题目解析
从题目中我们可以了解到,只需要把数组中的0移动到最后的位置即可
2.讲解算法原理
这题我们用到快慢指针思想,我们直接定义两个指针,
fast:从左往右扫描数组,遍历数组
slow:已处理的数组区间内,非0下标的最后一个位置
-1 | 0 | 1 | 0 | 3 | 12 |
fast | |||||
slow |
我们先让fast去扫描数组中的值,当遇到0时我们不进行任何操作,让fast++,当数组中的值不为0时,我们就让slow++;
1.fast遇到0,slow不走
-1 | 0 | 1 | 0 | 3 | 12 |
fast | |||||
slow |
2.fast遇不为0时,slow++;
-1 | 0 | 1 | 0 | 3 | 12 |
fast | |||||
slow |
3.这个时候我们将快慢指针中的两个数字进行交换
-1 | 1 | 0 | 0 | 3 | 12 |
fast | |||||
slow |
4.换完之后我们 fast 继续走,因为num[2] = 0 ,所以slow不动
-1 | 1 | 0 | 0 | 3 | 12 |
fast | |||||
slow |
5. fast 继续走,因为num[3] = 3 ,slow++ 并将这两个指针里的值进行交换
走完:
-1 | 1 | 0 | 0 | 3 | 12 |
fast | |||||
slow |
交换:
-1 | 1 | 3 | 0 | 0 | 12 |
fast | |||||
slow |
5. fast 继续走,因为num[4] = 12 ,slow++ 并将这两个指针里的值进行交换
走完:
-1 | 1 | 3 | 0 | 0 | 12 |
fast | |||||
slow |
交换:
-1 | 1 | 3 | 12 | 0 | 0 |
fast | |||||
slow |
至此我们就全部走完了,从上面的分析我们可以得出几点:
fast从前往后便利过程中:
1.当fast没遇到0时,我们就让slow++,并交换两个指针中的值;
2.当fast遇到0时,我们就让fast++;
3.编写代码
2.复写零
1.题目解析
从题目中我们可以了解到,只需要把数组中的0移动到最后的位置即可
2.讲解算法原理
这题我们用到快慢指针思想,我们直接定义两个指针
如果我们按照上题的便利方法时,我们从头开始走:
当 slow 遇到0时,我们就让fast+=2,没遇到时,我们让fast++;并将fast走的数组值改为0;
数组(-1) | 1 | 0 | 2 | 3 | 0 | 4 | 5 | 0 |
fast | ||||||||
更改后 | ||||||||
slow | ||||||||
更改后 |
1.
数组(-1) | 1 | 0 | 2 | 3 | 0 | 4 | 5 | 0 |
fast | ||||||||
更改后 | 1 | |||||||
slow | ||||||||
更改后 | 1 |
2.
数组(-1) | 1 | 0 | 2 | 3 | 0 | 4 | 5 | 0 |
fast | fast | |||||||
更改后 | 1 | 0 | 0 | |||||
slow | ||||||||
更改后 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
这个时候我们会发现fast将num[2] = 2 的值修改为0了,我们的slow接下来获取的值为0;那么
fast将继续走两步,并将fast走过后的值改为0,最后我们得到的值就为最后一行的内容,因此我们这样走是错的,所以我要改变思想,既然从前面行不通我们就可以想从后往前呢?
如果我们从后往前:
1.我们要确定是从后面的哪个位置开始往前便利
1.先判断 slow 位置的值
2.决定 fast 向后移动一步或者两步
3.判断一下 fast 是否已经到结束为止
4.slow++
2.处理边界情况(当最后一个位置为0时):
我们的 fast 依然会加+=2;此时数组就越界了;所以我们要判断一下 fast 是否等于我们的数组长度;如果不等于的话,我们只需将数组改回就行,
if(fast == length) {
arr[length - 1 ] = 0;
slow--; fast-= 2;
}
3.“从后往前”完成复写操作
3.代码编写
3.快乐数
1.题目解析
- 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
- 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
- 如果这个过程 结果为 1,那么这个数就是快乐数。
2.讲解算法原理
这题我们用到快慢指针思想,来解决检测循环或寻找特定位置(如链表的中点)的场景。
我们直接定义两个指针,
fast:快指针每次向前走两步
slow: 慢指针每次往前走一步
等他俩相遇时,判断一下值即可。
示例1:
19 : 1^2+9^2 = 82 : 8^2+2^2 = 68 : 6^2+8^2 = 100 : 1^2+0^2+0^2 = 1;
示例2:
2 ->4->16->37->58->89->145->42->20->4->16
此时我们的示例2就为环一直循环了。
当他们为环时:我们的快指针就会先一步到达 1并开始循环1;而我们的慢指针则到达1后再开始循环1;所以当他们都为1时,就跳出循环即可。
讲解为什么这是一个无限循环:
了解:鸽巢原理,也称为抽屉原理,是组合数学中的一个基本原理。
该原理表明,如果有n个鸽巢和m个鸽子(m > n),那么至少有一个鸽巢中会有两个或更多的鸽子。这一原理可以推广到更一般的情况:如果有n个鸽巢和超过kn个鸽子,那么至少有一个鸽巢中有(k + 1)个鸽子。
因为此题的范围:
1 <= n <= 2^31 - 1
此时n的范围就为2*10^9;我们直接考虑最大值十个9的情况:
(999999999)能变的次数为 9^2*10 = 810次,于是当我们超过810次时,其中必有两个数是相同的,于是这就成环了。
3.代码编写
4.盛最多水的容器
1.题目解析
给定一个长度为
n
的整数数组height
。有n
条垂线,第i
条线的两个端点是(i, 0)
和(i, height[i])
。找出其中的两条线,使得它们与
x
轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。
2.讲解算法原理
我们从题中可以看出要取两端的最大值,并从两端的最大值中找到那个小值,乘上我们的数组长度即可,于是我们要用到的双指针思想是对撞指针来找到另外根据问题要求调整其中一个指针,直到找到满足条件的结果或两个指针满足。
用法:
两个指针从数据结构的端点出发,向中间移动。
开始构思:
左边:left = 0 右边:right = 数组的长度 - 1;
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
1 | 8 | 6 | 2 | 5 | 4 | 8 | 3 | 7 |
left | right |
我们开始向中间移动:
1: num[left] = 1 ; num[right] = 7 我们需要取得两数的最小值 来算面积 即为 1 * 8(right - left)= 8(ret)
因为我们要求最大的容积,我们就要想指针怎么移动 ,这是我们就要开始对比两边的大小了
当左边小于右边时我们就让 left++ ,反之 right--;
2: num[left] = 8 ; num[right] = 7 我们需要取得两数的最小值 来算面积 即为 7 * 7(right - left)= 49(ret)
3:num[left] = 8 ; num[right] = 3 我们需要取得两数的最小值 来算面积 即为 3 * 6(right - left)= 18(ret)
4 ……
5 ……
直到我们左边的值大于右边即停,找到其中的最大最即可:
3.代码编写
5.有效三角形的个数
1.题目解析
给定一个包含非负整数的数组 nums
,返回其中可以组成三角形三条边的三元组个数。
2.讲解算法原理
数学知识 :两边之和大于第三边 即为三角形
在做之一类题时,我们都可以先对数组排序:此时我们就可利用单调性,使用双指针去解决问题;
我们要用到的双指针思想是对撞指针来找到另外根据问题要求调整其中一个指针,直到找到满足条件的结果或两个指针满足。
用法:
两个指针从数据结构的端点出发,向中间移动。
开始构思:
2 | 2 | 3 | 4 |
n-1 | |||
left | right |
此时我们牵扯了三个值;
1.先固定最大的数
2.在最大的数的左区间内,使用双指针算法,"快速统计出符合要求的三元组的个数
当我们先固定完最大那个数,剩下我们只需要进行判断即可:
左边:left = 0 右边:right = i - 1;
想完上面后,我们就要想指针怎么移动了
因为数组是有序的:
1 | 3 | 4 | 5 | 6 | 7 |
n -1 | |||||
left | right |
当我们遇到上面这种情况时:if(nums[left] + nums[right] < nums[n - i])
如果我们移动right的值就会发现前面的值都比6小,因此我们只能让left++;
反之将right--;
此时这个区间内的所有数据都符合三角形,相加即可:
3.代码编写
6.查找总价格为目标值的两个商品
1.题目解析
购物车内的商品价格按照升序记录于数组
price
。请在购物车中找到两个商品的价格总和刚好是target
。若存在多种情况,返回任一结果即可。
2.讲解算法原理
我们看这道题时有没有发现和上题非常相似呢?
上题要我们在数组里面固定一个值,而这题我们不需要固定值了而是直接给你,所以我们举一反三可得:
我们要用到的双指针思想是对撞指针来找到另外根据问题要求调整其中一个指针,直到找到满足条件的结果或两个指针满足。
用法:
两个指针从数据结构的端点出发,向中间移动。
开始构思:
左边:left = 0 右边:right = 数组的长度 - 1;
假设数据: target = 9
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
left | right |
我们就要想指针怎么移动 :
if(nums[right] + nums[left] = 8 <( target
)(9))
如果我们移动right的值就会发现前面的值都比8小,因此我们只能让left++;
反之将right--;
如果我们满足 这两个数相加等于 target 时我们返回这组数据即可;
3.代码编写
7.三数之和
1.题目解析
给你一个整数数组
nums
,判断是否存在三元组[nums[i], nums[j], nums[k]]
满足i != j
、i != k
且j != k
,同时还满足nums[i] + nums[j] + nums[k] == 0
。请你返回所有和为0
且不重复的三元组。注意:答案中不可以包含重复的三元组。
2.讲解算法原理
我们可以看到数组中有正有负,非常不利于我们去操作数组,于是我们可以先将数组排序后
利用单调性去使用双指针去解决问题;
我们要用到的双指针思想是对撞指针来找到另外根据问题要求调整其中一个指针,直到找到满足条件的结果或两个指针满足。
用法:
两个指针从数据结构的端点出发,向中间移动。
开始构思:
1.排序;
2.固定一个数 a;
- 固定一个数:通过
for
循环遍历数组的每个元素,将其固定为三元组的第一个数nums[i]
。 - 提前退出循环:如果当前数
nums[i] > 0
,直接结束循环,因为排序后,nums[i]
后面的数都大于零,三数之和不可能为零。
3.在该数后面的区间内,利用“双指针算法”快速找到两个的和够于 -a 即可。
左边:left = 0 右边:right = 数组的长度 - 1;
- 双指针初始化:
left
指向固定数nums[i]
的下一个元素。right
指向数组的最后一个元素。- 目标和:
target = -nums[i]
,即寻找两个数的和为-nums[i]
。
- 计算双指针的和:
sum = nums[left] + nums[right]
。
我们就要想指针怎么移动 :
三种情况:
sum > target
:说明当前和太大,需要减小和,所以右指针right--
左移。sum < target
:说明当前和太小,需要增大和,所以左指针left++
右移。sum == target
:找到一个满足条件的三元组,加入结果列表ret
中。
处理细节问题:
1.去重
找到一种结果之后,left 和 right 指针要跳过重复元素
当使用完一次双指针算法之后,i也需要跳过重复元素
避免越界
- 左指针跳过重复值:
while (left < right && nums[left] == nums[left - 1]) left++
。 - 右指针跳过重复值:
while (left < right && nums[right] == nums[right + 1]) right--
。
2.不漏
找到一种结果之后,不要"停",缩小区间,继续寻找
3.代码编写
8.四数之和
1.题目讲解
给你一个由
n
个整数组成的数组nums
,和一个目标值target
。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]]
(若两个四元组元素一一对应,则认为两个四元组重复):
0 <= a, b, c, d < n
a
、b
、c
和d
互不相同nums[a] + nums[b] + nums[c] + nums[d] == target
你可以按 任意顺序 返回答案 。
2.讲解算法原理
我们可以看到数组中有正有负,非常不利于我们去操作数组,于是我们可以先将数组排序后
利用单调性去使用双指针去解决问题;
我们要用到的双指针思想是对撞指针来找到另外根据问题要求调整其中一个指针,直到找到满足条件的结果或两个指针满足。
用法:
两个指针从数据结构的端点出发,向中间移动。
开始构思:
1.依次固定一个数 a;
2.在 a后面的区间内,利用“三数之和”找到三个数,使这三个数的和等于 target-a 即可
三数之和:1.依次固定一个数 b;
2.在 b 后面的区间内,利用“双指针"找到两个数使这两个数的和等于 target-a-b 即可。
目标值计算:对于当前固定的 nums[i] 和 nums[j],目标值为 aim = (long) target - nums[i] - nums[j]。这里使用 (long) 类型转换,防止加法溢出。
双指针初始化:left 从 j + 1 开始,right 从数组末尾开始。
条件判断:
- 如果 sum > aim,说明当前和过大,右指针 right-- 左移以减小和。
- 如果 sum < aim,说明当前和过小,左指针 left++ 右移以增大和。
- 如果 sum == aim,找到满足条件的四元组,加入结果列表 ret。
处理细节问题:
1.去重
找到一种结果之后,left 和 right 指针要跳过重复元素
当使用完一次双指针算法之后,i也需要跳过重复元素
避免越界
- 左指针跳过重复值:
while (left < right && nums[left] == nums[left - 1]) left++
。 - 右指针跳过重复值:
while (left < right && nums[right] == nums[right + 1]) right--
。
2.不漏
找到一种结果之后,不要"停",缩小区间,继续寻找
3.代码编写
相关文章:
优选算法(双指针)
1.双指针介绍 双指针算法是一种常用的算法思想,特别适用于处理涉及阵列、链表或字符串等线性数据结构的问题。通过操作两个一个指针来进行导航或操作数据结构,双指针可以最大程度优化解决方案的效率。提高效率并减少空间复杂度。 在Java中使用双指针的核…...
【保姆级】Mac上IDEA卡顿优化
保姆级操作,跟着操作即可~~~ 优化内存 在你的应用程序中,找到你的idea 按住control键+单击 然后点击“显示包内容” </...
python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具
python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具 文章目录 python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具项目背景技术栈用户界面核心功能实现结果展示完整代码总结 在现代软件开发中,测试接口的有效性与响应情况变得尤为重要。本文将指导…...
pytest 接口串联场景
在编写接口测试时,如果有多个接口需要串联在一起调用,并且这些接口共同构成了一个业务场景,通常可以使用以下几种方法来组织代码,使其更具可读性和维护性。以下是一些规范的建议: 1. 使用 pytest 的 fixture 来管理接…...
Springboot项目搭建(2)-用户详细信息查询
1. 提要信息 1.1 java四类八种 在Java中,四类指的是Java中的基本数据类型和引用数据类型: 基本数据类型:Java提供了八种基本数据类型,包括整数型、浮点型、字符型和布尔型。引用数据类型:指向对象的引用,…...
Stable Diffusion的加噪和去噪详解
SD模型原理: Stable Diffusion概要讲解Stable diffusion详细讲解Stable Diffusion的加噪和去噪详解Diffusion ModelStable Diffusion核心网络结构——VAEStable Diffusion核心网络结构——CLIP Text EncoderStable Diffusion核心网络结构——U-NetStable Diffusion中…...
解决 Gradle 报错:`Plugin with id ‘maven‘ not found` 在 SDK 开发中的问题
在 SDK 开发过程中,使用 Gradle 构建和发布 SDK 是常见的任务。在将 SDK 发布为 AAR 或 JAR 包时,你可能会使用 apply plugin: maven 来发布到本地或远程的 Maven 仓库。但是,随着 Gradle 版本的更新,特别是从 Gradle 7 版本开始&…...
EMD-KPCA-Transformer多变量回归预测!分解+降维+预测!多重创新!直接写核心!
EMD-KPCA-Transformer多变量回归预测!分解降维预测!多重创新!直接写核心! 目录 EMD-KPCA-Transformer多变量回归预测!分解降维预测!多重创新!直接写核心!效果一览基本介绍程序设计参…...
前端 px、rpx、em、rem、vh、vw计量单位的区别
目录 一、px 二、rpx 三、em 四、rem 五、vh和vw 六、rpx 和 px之间的区别 七、px 与 rem 的区别 一、px px(像素): 1、相对单位,代表屏幕上的一个基本单位,逻辑像素。 2、不会根据屏幕尺寸或分辨率自动调整大…...
OceanBase数据库产品与工具介绍
OceanBase:蚂蚁集团自主研发的分布式关系数据库 1、什么是 OceanBase? OceanBase 是由蚂蚁集团完全自主研发的企业级分布式关系数据库,始创于 2010 年。它具有以下核心特点: 数据强一致性:在分布式架构下确保数据强…...
学习threejs,对模型多个动画切换展示
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.AnimationMixer 动画…...
【Bug合集】——Java大小写引起传参失败,获取值为null的解决方案
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:本文面向的人群 二:错误场景引入 三:正确场景引入 四…...
Python爬虫:如何从1688阿里巴巴获取公司信息
在当今的数字化时代,数据已成为企业决策和市场分析的重要资产。对于市场研究人员和企业分析师来说,能够快速获取和分析大量数据至关重要。阿里巴巴的1688.com作为中国最大的B2B电子商务平台之一,拥有海量的企业档案和产品信息。本文将介绍如何…...
单片机学习笔记 2. LED灯闪烁
更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯 目录 0、实现的功能 1、Keil工程 2、代码实现 0、实现的功能 LED灯闪烁 1、Keil工程 闪烁原理:需要进行软件延时达到人眼能分辨出来的效果。常用的延时方法有软件延时和定时器延时。此次先进行软…...
折叠光腔衰荡高反射率测量技术的matlab模拟理论分析
折叠光腔衰荡高反射率测量技术的matlab模拟理论分析 1. 前言2. 光腔模型3. 光腔衰荡过程4. 衰荡时间与反射率的关系5. 测量步骤①. 光腔调节:②. 光腔衰荡测量:③. 计算衰荡时间常数:④. 反射率计算: 6. 实际应用中的调整7. 技术优…...
ubuntu 16.04 中 VS2019 跨平台开发环境配置
su 是 “switch user” 的缩写,表示从当前用户切换到另一个用户。 sudo 是 “superuser do” 的缩写,意为“以超级用户身份执行”。 apt 是 “Advanced Package Tool” 的缩写,Ubuntu中用于软件包管理的命令行工具。 1、为 root 用户设置密码…...
C语言第13节:指针(3)
1. 回调函数 回调函数的基本思想是,将函数指针作为参数传递给另一个函数,并在需要时通过这个函数指针调用对应的函数。这种方式允许一个函数对执行的内容进行控制,而不需要知道具体的实现细节。 回调函数在以下场景中尤为有用: …...
java:简单小练习,面积
面积:圆和长方形 接口:实现面积 test:调用 一、interface: 对于接口,它是Java中一个新增的知识点,而C中没有,因为Java有一个缺陷就是不可以实现多继承,只可以单继承,这就限制了有些功能的使…...
@Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)
1. 前置知识 Configuration public class RedisConfig {Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> template new RedisTemplate<>();template.setConnectionFactory(facto…...
PostgreSQL提取JSON格式的数据(包含提取list指定索引数据)
PostgreSQL提取JSON格式的数据(包含提取list指定索引数据) ->>, ->, #>, #>> 在PostgreSQL中,处理json或jsonb类型数据时,->>, ->, #> 和 #>> 是非常有用的操作符,它们允许你以…...
如何利用谷歌浏览器提高网络安全
在当今数字化时代,网络安全已成为我们不可忽视的重要议题。作为全球最受欢迎的网络浏览器之一,谷歌浏览器不仅提供了快速、便捷的浏览体验,还内置了多种安全功能来保护用户的在线安全。本文将详细介绍如何通过谷歌浏览器提高您的网络安全&…...
go-zero(四) 错误处理(统一响应信息)
go-zero 错误处理(统一响应信息) 在实现注册逻辑时,尝试重复注册可能会返回 400 状态码,显然不符合正常设计思维。我们希望状态码为 200,并在响应中返回错误信息。 一、使用第三方库 1.下载库 目前 go-zero官方的…...
1.1 爬虫的一些知识(大模型提供语料)
1.1 爬虫的一些知识(大模型提供语料) 网页资源: 资源组织方式:列表分页,搜索引擎,推荐 发送请求的文档类型:html ,js 响应请求的文档类型:html,js,json 请求方式:同步和异步 页面形式…...
Linux开发工具:Vim 与 gcc,打造高效编程的魔法双剑
文章目录 一、初识Vim模式 二、vim基本操作2.1基础操作2.2命令模式/正常模式2.2.1光标定位2.2.2复制粘贴、删除2.2.3撤销2.2.4替换字符2.2.5替换模式 2.3底行模式2.3.1退出vim和**保存文件**2.3.2定位文本字符串2.3.3命令2.3.4实现分屏2.3.5替换指定字符串 2.4补充指令2.4.1视图…...
cesium for unity的使用
先聊聊导入 看到这里的因该能够知道,官网以及网上绝大多数的方法都导入不进来,那么解决方法如下: 两个链接:按照顺序依次下载这两个tgz和zip,其中tgz为主要部分,zip为示例工程项目 如果您要查看示例工程项目的话&am…...
Android AOSP 架构和各层次开发内容介绍
一、系统架构总况 官方文档:架构概览 | Android Open Source Project (google.cn)https://source.android.google.cn/docs/core/architecture?hl=zh-cn 下面是Google Android 提供的最新架构层次图: 图. AOSP 的软件堆栈层次 System API 表示仅供合作伙伴和 OEM…...
Kafka 到 Kafka 数据同步
简述 Kafka 为处理实时数据提供了一个统一、高吞吐、低延迟的平台,其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”,这使它作为企业级基础设施来处理流式数据非常有价值。因此实现 Kafka 到 Kafka 的数据同步也成了一项重要…...
华为刷题笔记--题目索引
文章目录 更多关于刷题的内容欢迎订阅我的专栏华为刷题笔记简单题目 更多关于刷题的内容欢迎订阅我的专栏华为刷题笔记 该专栏题目包含两部分: 100 分值部分题目 200 分值部分题目 所有题目都会陆续更新,订阅防丢失 简单题目 –题目分值试卷1华为OD机…...
osgEarth加载倾斜摄影测量数据
一、代码 // .cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <osgViewer/Viewer> #include <osgEarth/Notify> #include <osgEarth/EarthManipulator>...
消息推送问题梳理-团队管理
管理用户界面: 新增加用户列表:这些用有资格收到推送消户息 当删除一个医生的时候,重新添加这个人的时候 发现团队中没有这个人了 ,这个时候 需要重新添加这个人。 处理这个问题遵循的原则: 删除这个用户的时候&…...
wordpress显示关闭评论框/seo广告平台
参考:http://www.w3school.com.cn/css/css_outline.asp CSS 边框属性 "CSS" 列中的数字指示哪个 CSS 版本定义了该属性。 属性描述CSSoutline在一个声明中设置所有的轮廓属性。2outline-color设置轮廓的颜色。2outline-style设置轮廓的样式。2outline-wid…...
网站流量下滑/今日头条普通版
做工作都有需求在推动着我们,需求都需要强大的技术和分析能力做支撑,工欲善其事,必先利其器。在数据分析的过程中,我们需要针对不同用户的分析需求,去提供不同的分析模块、不同的模型,这些都需要有专业的分…...
烟台网站建设/设计网站用什么软件
目录 0. 相关文章链接 1. ssh没有配置好 2. DataNode和NameNode进程同时只能工作一个 3. 执行命令不生效 4. jps命令问题 5. 不能通过浏览器访问服务的web页面 0. 相关文章链接 Hadoop文章汇总 1. ssh没有配置好 在Hadoop的安装过程中,HDFS的主节点NameNode…...
小说网站有源码了该怎么做/做外贸有哪些网站平台
无论你身在何处,无论你学习什么编程语言,你最后都与数据库打交道。本来世界就相当于一个超级数据库。 在学习java语言的时候,也会涉足由于这个领域的,我在学习java的过程中用的是开源版的mysql. 作为一名 准程序员, 我…...
网站改版对seo影响/品牌传播策略
[url]http://my.oschina.net/u/2416019/blog/633804[/url] 使用WebServlet就不需要web.xml配置了。当标注与web.xml同时配置时,标注无效。 使用配置描述符(命名:web.xml)的好处是:如果需要修改配置值,如&am…...
辽宁网站建设墨子/焦作网络推广哪家好
英文名:DotNetTextBox V3.0 WYSWYG Web Control For Asp.Net2.0 中文名:DotNetTextBox V3.0 所见即所得编辑器控件 For Asp.Net2.0 类型: 个人及非盈利性网站免费使用 作者: 小宝.NET 2.0(Terry Deng) 主页:http://www.aspxcn.com.cn 控件演示…...