2024年Android项目实现高德导航
使用高德SDK实现导航功能参考博客 Github仓库直达 这是今天企业实训的一个小作业,实际上我从昨天就开始尝试申请key然后下载官方Demo开始实验。本来是要做flutter项目,但是高德官方里flutter教程只有显示地图和定位功能,没有导航功能,导航功能官方只有Android的教程。今天也是用Android原生进行编写的。至于怎么整合到flutter项目里目前还不知道。。。 1. 官网下载SDK我也尝试过直接gradle引入包的操作,但是直接引入的会缺少AmapNaviParams。官网也一直强调有个什么东西开源了所以提供的包里移除了一些东西(不知道到底是什么)。 官网SDK下载地址 我下载的是导航合包: 2. 创建项目直接Android Studio创建一个java,Groovy的项目即可。 设置里需要设置生成所有Gradle Task: 这样你就可以靠点击这里直接获得你项目的SHA1的值,申请key的时候需要这个。 点击上图位置你就可以在终端看见你的SHA1值。在我这里release和debug的SHA1的值是一样的。 ...
Eloquent JavaScript 08 Exercises
错误To the book page Retry大概率触发MultiplicatorUnitFailure错误,承接直到运行成功并返回结果。 1234567891011121314151617181920212223242526272829class MultiplicatorUnitFailure extends Error {}function primitiveMultiply(a, b) { if (Math.random() < 0.2) { return a * b; } else { throw new MultiplicatorUnitFailure("Klunk"); }}function reliableMultiply(a, b) { // Your code here. for(;;){ try{ var ans = primitiveMultiply(a,b); ...
Eloquent JavaScript 07 robot
robotTo the book page代码解释由AI生成。 总代码数据结构和图的构建首先定义了村庄中各个地点之间的道路: 123456789const roads = [ "Alice's House-Bob's House", "Alice's House-Cabin", "Alice's House-Post Office", "Bob's House-Town Hall", "Daria's House-Ernie's House", "Daria's House-Town Hall", "Ernie's House-Grete's House", "Grete's House-Farm", "Grete's...
Eloquent JavaScript 06 Exercises
对象To the book page A vector type封装一个类,实现坐标的加减法,以及get属性的length返回坐标离原点的距离。 12345678910111213141516171819202122// Your code here.class Vec{ constructor(x,y){ this.x = x; this.y = y; } plus(other){ return new Vec(this.x+other.x,this.y+other.y); } minus(other){ return new Vec(this.x-other.x,this.y-other.y); } get length(){ return Math.sqrt(this.x**2+this.y**2); }}console.log(new Vec(1,...
Eloquent JavaScript 05 Exercises
高阶函数记录一下这本书的习题的答案,这是第五章的练习。 To the book page Flattening将包含数组的数组展开,即只有一对中括号的数组。 1234567let arrays = [[1, 2, 3], [4, 5], [6]];// Your code here.let combineArrays = arrays.reduce((accumulator,currentArray)=>{ return accumulator.concat(currentArray);},[])console.log(combineArrays);// → [1, 2, 3, 4, 5, 6] Your own loop如果不能满足条件(testAct)就不能继续循环。下一次循环要用新的值(updateAct),每次循环需要执行一定的操作(bodyAct)。 123456789101112// Your code here.function loop(value, testAct, updateAct,bodyAct){ ...
用Github Desktop简化你的推送流程
用Github Desktop简化你的推送流程Github Desktop官方网站 1. 第三方仓库克隆选择file->clone repository, 通过URL克隆你的仓库选择URL,里面填你的第三方仓库的https克隆链接,注意要填写公网地址而不是内网地址。 注意选择你保存仓库的本地位置 点击clone后应该会弹出让你输入用户名和密码,如果是gitlab,直接输入你登录gitlab的用户名和密码。 到此为止应该是可以克隆仓库到本地了。之后的操作,和一般的git操作是一致的,不过是有了图形化的界面,不用输入繁琐的命令。 2. add 和 commit直接到app界面,一旦仓库有文件更改,app界面会罗列出你更新文件的内容,需要你进行commit操作。 3. push处理完所有的commit后就可以进行推送了,直接点击界面右边的push origin 即可。
Chess For Three
Chess For Three这是Codeforces Round 945 (Div. 2) 第一题。 题目链接 题意三个人玩游戏,每局两个人玩。赢得人得2分,输的人得0分。平局每个人得1分。会给你三个人的最终得分,问最多平局多少局。 重点记录这里题确实不难,但是有一个样例因为没有给怎么算的导致我一直以为样例给错了。。。 123 4 56 3分4分5分,最大平局数是6。 我最一开始想的是a和b平局3次,b还剩一局和c平局,这是4次。a和c平局3次,b和c平局2次,这是5次。但是样例给的是6次。 6次的情况应该是c和a平局2次,c和b平局3次,a和b平局1次,这样就是6次。这真的是太amazing了。 题解可以直接暴力枚举a和b,a和c,b和c平局次数,然后判断分数是否合法。除去平局的分数,剩下的分数应该left%2==0。 但是还有结论, min((p1+p2+p3)/2,p1+p2),这里保证p1<=p2<=p3。 先考虑合不合法,三个数加一起如果是偶数就一定合法。 ...
Prison Escape
Prison Escape这是codechef starter 134 div4的第六题。题目链接 题目大意NxM的01矩阵,0代表罪犯,1代表守卫者。罪犯可以上下左右移动,计算罪犯最少需要经过几个守卫者才能逃出这个矩阵。我们要求出这些罪犯里边经过最少守卫者数量的最大值。数据范围:T 1000,N和M...
3 out 1 in
3out1in题目链接 题目大意这是codechef starter 134 div4的第五题。 给你一个数组B,里面包含M个数字,其中M必定为奇数。操作是选出三个数字a,b,c, 这三个数字从数组里剔除,数组中重新加入成员a+b-c。可以看出来每一次操作会让数组少两个元素,问最后剩下一个元素的最大值是多少。其中有多个询问,询问内容是如果只有前k个元素,剩下的最后一个元素最大值是多少。 赛时回顾我在第一次做这道题的时候就直接考虑到了用优先队列。显然最优解是每次选两个最大值,然后减去最小值。原数组我用数组a存储,每次将前k个元素送入优先队列和数组b中,数组b进行排序用来获得最小值,优先队列获取最大值。成功拿到30分的部分分,其他测试会超时。 正解官方题解思路让我恍然大悟。永远记得可以用空间换取时间。既然可以用一个优先队列,那么我们就可以用两个优先队列。虽然我们不知道给出的qurey里k的值是多少,但是我们可以用ans数组记录所有对应k值的答案。 ...
Codeforces Round 944 (Div. 4) 回顾
Codeforces Round 944 (Div. 4) 回顾比赛回顾赛中是AC了前四题,E答案错误,F超时。可以说是做到了最后五分钟,排名是6000多。 比赛链接 官方题解链接 题目分析AB就直接跳过了,纯签到。 C. Clock and StringsC题意思是给出表中两对数字,看每对数字连接的线是否相交。我的思路是只要一条线的一个端点在另一条线的区间内,切另一端在区间外即可断定这两条线是相交的。 为了更好的进行区分,我进行了排序,其中满足a<c a<b c<d。 我觉得不能直接去写,表上的数字是1到12,对于一条线,一个端点是1,另一个端点是10,其中11和12其实是在线的包围内的,所以我给所有小于6的数字加了12,区间变成了6到17,然后判断是否c在a和b之间,d在a和b之外。但是我今天才发现我的判断语句竟然是这样的: 12if((a<c&&c<b)||(a<d&&d<b)) cout<<"YES"<<endl; else...
安装完整版Xcode后我的C++万能库不见了
安装完整版Xcode后我的C++万能库不见了前言昨天因为安装了flutter的原因,因为这个需要完整版Xcode,之前都是安装的命令行版本的,所以直接去苹果应用商店安装了。但是万万没想到的是,完整版Xcode竟然更改了我使用的Clang地址。他更改到了Applications文件夹下的完整版Xcode里面。看来是Xcode自带了Clang然后就直接更改了默认地址。 好巧不巧昨天codeforces Round 944开赛前三分钟我才发现了问题。因为我的万能库引用不能用了。还好我有在博客写过mac电脑vscode的c++运行配置。所以只花了五分钟就添加好了万能库文件。不过我所经历的和上篇文章有所不同。所以在此记录一下。 在完整Xcode里添加万能库文件 同样是在终端里输入echo | g++ -v -x c++ -E -,...
将本机ipv6地址复制到粘贴板脚本
将本机ipv6地址复制到粘贴板脚本准确的来说是将windows主机的ipv6地址复制到粘贴板上的powershell脚本。因为有时候需要远程连接我自己的R9000p,所以与其每次开机去命令行运行ipconfig,不如直接复制到粘贴板里,这样就可以直接打开邮件将地址发送出去。本来想写一个一件发送ipv6地址到指定邮箱的脚本,但是好像很麻烦,就算了。代码由chatgpt生成,再根据我的实际情况改写的。 设备配置windows为win11,由于学校校园网比较特殊,使用的是拨号上网,拨号名称我设置成了DIANXIN。 在命令行中运行ipconfig后会显示很多网络适配器,其中我需要的是: 1234567891011Windows IP ConfigurationPPP adapter DIANXIN:Connection-specific DNS Suffix . :IPv6 Address. . . . . . . . . . . : 240e:360:40b:200:XXXX:XXXX:fc48:XXXLink-local IPv6 Address . . . . . :...
Project 1: Data Structures
Project 1: Data Structures类值的相等判断永远用.equals()而不是==花了近两天的时间终于是把Probject 1 完成了,完成了LinkedListDeque和ArrayDeque两种实现的Deque。在此就不再赘述数据结构的实现方法,代码地址 那么我要写一些什么呢?写一些我遇到的问题和bug。 这个bug实在是令人火大,这本是不应该出现的错误 正如二级标题所说的,类值的相等判断永远用.equals()而不是==。而且值得铭记的是,测试文件一定要扩大数据规模,因为扩大规模真的会发现意想不到的错误。 事情的起因是public boolean equals(Object o)这个函数,对于一个自己实现的数据类,这个方法是很有Override的必要的。因为两种数据类基本一样,这里我只用LinkedListDeque举例。 1234567891011121314151617181920212223242526/*** check if two deques are equal** @param o* @return true if...
Codeforces Round 943 (Div. 3) A-E solutions
Codeforces Round 943 (Div. 3)In this competition, I just got three Accepted.Competition Address A. Maximize?The meaning of the question is to find maximum of gcd(x,y)+y when gives you x.My solution is to have a linear search. Enough to pass this question.12345678910111213141516171819202122232425#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);}int main(){ int T; cin>>T; while(T--){ int...
Spotify美化
基于spicetify-cli对Spotify进行客制化什么是spicetify-cli spicetify仓库地址 官网Doc Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux. 仓库readme明确说明了这是用于定制官方客户端的命令行工具。但是在官网Doc的安装教程里面却没有说清楚,这样会带来很多的麻烦。 在安装之前你必须要做的事情: 确保电脑已经安装了spotify官方客户端,因为spicetify只是美化工具而不包含客户端 确保已经登陆了个人账号,新安装的spotify客户端在登陆之前prefs文件并不会创建,会导致spicetify找不到路径而报错。 默认你已经解决了所有关于网络的问题 macOS安装步骤若安装步骤有问题或者是其他操作系统,你可以直接去官网Doc查看最新的安装步骤。 Spicetify CLI(工具本身) 1curl -fsSL...
为博客添加RSS,sitemap和本地搜索
博客的一些配置总结添加RSS1npm install hexo-generator-feed --save 在_config.yml 里添加:12345678910111213feed: enable: true type: atom path: atom.xml limit: 20 hub: content: content_limit: 140 content_limit_delim: ' ' order_by: -date icon: icon.png autodiscovery: true template:其中limit指源里保存的文章个数,content_limit指summary的长度。如果想要添加RSS图标,可在butterfly主题配置文件_config.yml里,social:后添加fas fa-rss: /atom.xml || RSS || '#f26522',这样RSS图标就会出现在右边头像下边 添加sitemap1npm install hexo-generator-sitemap...
Project 0: 2048
Project 0: 2048在这里贴一个线上2048的网站,link整体代码仓库:github TASK 1: emptySpaceExists(Board b)简单来说就是检测面板上是否还有没有数的地方。直接O(n)遍历。123456789101112/** Returns true if at least one space on the Board is empty. * Empty spaces are stored as null. * */public static boolean emptySpaceExists(Board b) { int length = b.size(); for(int i = 0; i < length; i++) { for(int j = 0; j < length; j++) { if(b.tile(i,j)==null) return true; } } return...
shell 相关
Lecture 1: Course Overview + The Shell (2020)对应中文网站 date 查看时间 echo Hello\ World 输出Hello World echo $path 查看电脑有哪些路径 which echo 查看echo命令会执行哪里的文件 pwd Print Working Directory,即打印当前工作目录 cd ./home 打开当前目录下home文件夹 ls “list” 的缩写,表示列出目录中的文件和子目录 cd ||cd ~ take you home cd - 返回刚才所在文件夹,常用于cd ~ 后 ls -l 长格式显示目录内容,包括文件权限、所有者、文件大小、最后修改时间等 mv file.txt newfile.txt 重新命名文件 mv file.txt directory/ 移动文件到指定目录中 cp file.txt directory/ 复制文件到指定文件夹 cp file.txt directory/newfile.txt 复制文件到指定文件夹并重命名 rm file.txt...
tarjan算法
tarjan 算法(Tarjan’s strongly connected components algorithm)很棒的解释视频 简述算法Tarjan 算法是一种用于查找图中强连通分量的算法,由 Robert Tarjan 在 1972 年提出。强连通分量是指在有向图中,如果从顶点 u 到顶点 v 以及从顶点 v 到顶点 u 都存在一条路径,那么顶点 u 和顶点 v 是强连通的。 Tarjan 算法的核心思想是通过深度优先搜索(DFS)遍历图,并使用堆栈来追踪搜索过程中的顶点。在遍历的过程中,对每个顶点进行标记,记录其在搜索树中的深度和最小后向边的深度。如果发现某个顶点的后继节点指向了一个已经被访问过的顶点,那么这个顶点及其所有后继节点构成一个强连通分量。 Tarjan 算法的关键点在于维护一个栈,用来保存正在搜索的节点。当 DFS 遍历过程中发现一个节点的所有后继节点已经搜索完毕,并且该节点是当前 DFS 搜索树中的根节点时,可以将该节点以及其所有后继节点弹出栈,并将它们标记为一个强连通分量。 Tarjan 算法的时间复杂度为 O(V + E),其中 V...
verbal advantage level 2 1-20
word 1-10word 1: advocate 提倡,拥护,主张Similarly, many are now aware of this polarized notion of the field and some have begun to advocate possible alternatives. word 2: delegate 委托,托付However, these delegates saw their efforts as serving purposes beyond profit generation. word 3: unprecedented 前所未有的,史无前例的With the surge of population and economic activity during the past two generations or so, the environment has come under unprecedented stress. word 4: poignant 尖锐的,强烈的,酸楚的The women’s stories are...