算法/数据结构
未读LeetCode 27、移除元素描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:
更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
返回 k。
用户评测:
评测机将使用以下代码测试您的解决方案:
123456789101112int[] nums = [...]; // 输入数组int val = ...; // 要移除的值wint[] expectedNums = [...]; // 长度正确的预期答案。 // 它以不等于 val 的值排序。int k = removeElement(nums, val); // 调用你的实现assert k == expectedNums.length;sort(nums, 0, k); // 排序 num ...
算法/数据结构
未读LeetCode 26、删除有序数组中的重复项描述给你一个 非严格递增排列 的数组 nums ,请你** 原地** 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:
更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
返回 k 。
判题标准:
系统会用下面的代码来测试你的题解:
123456789int[] nums = [...]; // 输入数组int[] expectedNums = [...]; // 长度正确的期望答案int k = removeDuplicates(nums); // 调用assert k == expectedNums.length;for (int i = 0; i < k; i++) { assert nums[i] == expectedN ...
算法/数据结构
未读7-4 数组循环左移本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯a**n−1)变换为(a**m⋯a**n−1a0a1⋯a**m−1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。
输出格式:在一行中输出循环左移m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。
输入样例:128 31 2 3 4 5 6 7 8
输出样例:14 5 6 7 8 1 2 3
思路
翻转字符串操作:
1234567891011121314151617181920212223242526def reverse(arr, start, end): """反转数组从start到end的元素""" while start < end: ...
算法思路前缀和定义前缀和可以简单理解为「数列的前N项的和」,是一种重要的预处理方式,能大大降低查询的时间复杂度。
例题
解题思路$$递推:B[0] = A[0],对于 i \ge 1 则 B[i] = B[i-1] + A[i]。
$$
解题代码12345678910111213141516171819202122232425#include <iostream>using namespace std;int N, A[10000], B[10000];int main() { cin >> N; for (int i = 0; i < N; i++) { cin >> A[i]; } // 前缀和数组的第一项和原数组的第一项是相等的。 B[0] = A[0]; for (int i = 1; i < N; i++) { // 前缀和数组的第 i 项 = 原数组的 0 到 i-1 项的和 + 原数组的第 i 项。 B[i] = B[i - 1] + ...
算法/数据结构
未读LeetCode 485、最大连续 1 的个数题目描述给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1] 输出:2
提示:
1 <= nums.length <= 10^5
nums[i] 不是 0 就是 1
思路
循环遍历数组
记录数组中遇到0的index的值,如果碰到0就将当前数组的位置标记为index
而当前连续数的个数就是当前位置减去index值的最大值
可以对数组遍历一次,遍历时需要保存遇到的最后一个 0 的位置 index;
如果遍历到 i 位置的数字是 0,那么更新 index 为当前位置 i;
如果遍历到 i 位置的数字是 1,那么当前区间内共有 i−index 个连续的 1;
记录遍历过程中所有连续的 1 的长度的最大值。
123456789101112131415161718192021222 ...
sd阿里云函数部署脚本123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 ...
uiautomator2巨坑windows安装相关包:
1pip install --pre uiautomator2
这里安装雷电模拟器,这里要记住,要用雷电模拟器自带的adb
1where adb
启动雷电模拟器,开启开发者选项,以及USB调试,以及配置下模拟器IP地址。
重启下adb
123adb kill-serveradb start-server
再查询是否检测到设备:
1adb devices
查询到了,再安装ATX。
1python -m uiautomator2 init
安装完后,会有这个图标:
点开他,按下:
发现启动不了。
这里直接进入shell,操作手机,进行打开。
12345adb shellchmod 775 /data/local/tmp/atx-agent/data/local/tmp/atx-agent server -d (添加-d表示在后台动)
这样就打开了。不会提示Uiautomator not starting
下面安装weditor
1pip install --pre -U weditor
然后启动
1weditor ...
爬取中国土地网时出现304情况304对应描述:客户端已经执行了GET,但文件未变化这是因为该网站采取了强缓存验证, 服务器将要爬取的内容在本地做了缓存,再次请求的时候,会首先检查本地缓存中是否已存在,如果有就返回304
解决方法:在requests headers中,禁用删除If - Modified-Since 和If-None-Natch 这两项,服务器是通过检查这两项来判断是否是已经做了缓存。
1234567891011121314import requestsurl = 'http://example.com'headers = { # 不包含 If-Modified-Since 和 If-None-Match}response = requests.get(url, headers=headers)# 检查响应状态码if response.status_code == 304: print("Resource has not been modified.")else: print("R ...
1.1概述在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了**系统的吞吐量。
1.1.1 QPS概念QPS即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。每秒查询率:因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,即为QPS。或者理解:每秒的响应请求数,也即是最大吞吐能力。
计算关系:QPS = 并发量 / 平均响应时间并发量 = QPS * 平均响应时间原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS) 。机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器 。
1.1.2PV UV PR① 什么是pv**PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。对pv的解释是,一个访问者在24小时(0点到24点 ...






![RabbitMQ[复盘]](https://cdn.jsdelivr.net/gh/LisianthusW/pic_bed@main/images/2024/07/17/17-54-55-image-20210717162752376-fb7887.png)
