ARTS 挑战打卡的第一周,我学到了这些~

news/2024/11/24 8:35:56/

目录

前言

一、学习的内容

二、超时怎么办那就换种思路看题解

三、学习打卡成果展示

3.1 Github的小技巧

3.2 英文文章阅读

3.3 一篇很不错的Java面试题博客

四、学习技巧的总结


前言

关于 ARTS 的释义
● Algorithm: 每周至少做一个 LeetCode 的算法题
● Review: 阅读并点评至少一篇英文技术文章
● Tips: 学习至少一个技术技巧
● Share: 分享一篇有观点和思考的技术文章

一、学习的内容

为了满足活动需求,我这周特意干了以下事情:

1. 一道有关前缀后缀积的算法题

2. 一篇关于AIGC助力转型智慧图书馆的外文期刊

3. 发现了GitHub的一个很方便的小技巧

4. 分享一篇对于正在寻找实习的小伙伴一篇很不错的面试文章。

二、超时怎么办那就换种思路看题解

对于很久没刷算法的我来说,现在想要做出一道需要用到一点点小技巧的的题目我就没思路了,还得是要经常多动动脑子啊,平常还是要练一下算法囖。

就比如下面这道题目:

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内。

不要使用除法,且在 O(n) 时间复杂度内完成此题。

正常一般会想到的是直接两个套for循环,我第一思路就是这样,但是我也知道这样肯定对于某些案例肯定超时:但是先不管,先写了再说,源代码如下:

class Solution {public int[] productExceptSelf(int[] nums) {int sizes = nums.length;int answer [] = new int [sizes];for(int i=0;i<sizes;i++){answer[i] = 1;for(int j=0;j<sizes;j++){if(j!=i){answer[i] *= nums[j];}}};return answer;}
}

这样运行结果就是只能通过部分案例:如下图 

不过这样还能通过80%的案例是我没想到的。然后就琢磨这么样才能让时间复杂度为O(n),惨了,想不出,那就看一下大家的题解hhh,才想起来要用前缀后缀积来写,是我太笨了。

大概的逻辑过程就是使用前缀积和后缀积,然后把前缀积和后缀积相乘。例程代码如下:

class Solution {public int[] productExceptSelf(int[] nums) {int sizes = nums.length;int answer [] = new int [sizes];int prew = 1, next = 1;for(int i=0;i<sizes;i++){answer[i] = 1;}for(int i=0;i<sizes;i++){answer[i]*=prew;prew*=nums[i];answer[sizes-1-i]*=next;next*=nums[sizes-1-i];};return answer;}
}

 只可惜时间复杂度是O(2n),但是广义上来说也算是O(n);因此也能通过,上述代码执行过程如下:

假如 nums[] = {1,2,3,4};

i = 0: ans[0] = 1*1;   prew = 1*1;   ans[3] = 1*1;   next = 1*4;

i = 1: ans[1] = 1*1*1; prew = 1*1*2; ans[2] = 1*1*4; next = 1*4*3

i = 2: ans[2] = 1*1*4*1*1*2; prew = 1*1*2*3; ans[1] = 1*1*1*1*4*3; next = 1*4*3*2

i = 3; ans[3] = 1*1*1*1*3*2; prew = 1*2*3*4; ans[0] = 1*1*1*4*3*2; next = 4*3*2*1

ans[0] = 1*1*1*4*3*2 = 24

ans[1] = 1*1*1*1*4*3 = 12

ans[2] = 1*1*4*1*1*2 = 8

ans[3] = 1*1*1*1*3*2 = 6

三、学习打卡成果展示

上述的题目也是可以通过了:

3.1 Github的小技巧

就是如果你有一个前端工程的话,你要是想能随时看到页面的渲染效果,但是又不想部署在服务器上,那你可以新建一个仓库,仓库命名要为.github.io结尾才可以,这样你就可以将build之后的生成的dist目录下的assets目录放到仓库里面去,那么你访问这个仓库的时候,会直接给你渲染这个工程的效果。

就比如我之前为了给同学送生日红包写的一个抽金额的案例:直接点击仓库的网址就可以使用了。非常方便!(背景图片就不要在意了哈,因为根据她的爱好来给她设置的哈哈哈

抽金额https://longstudy1.github.io/vuetest.github.io/

3.2 英文文章阅读

因为AIGC目前比较火热,所以我也找了一篇关于AIGC相关的英文文章来看,链接如下:

Smart Library Transformation Research Empowered by AIGC Technology | Francis Academic PressFrancis Academic Press is one of the world’s largest publishers of peer-reviewed, fully Open Access journals. Built on an ethos of openness, we are passionate about working with the global academic community to promote open scholarly research to the world. With the help of our academic Editors, based in institutions around the globe, we are able to focus on serving our authors while preserving robust publishing standards and editorial integrity.https://francis-press.com/papers/10935

这篇文章主要讲的是AIGC助力图书馆转型为智能图书馆的举措和思路,旨在通过人工智能和图形计算方面的技术将图书馆实现流程自动化,增强用户体验, 提高图书使用效率和增强用户使用体验。

文中也列举了一个例子,重庆的Raffles图书馆就是一座新型的智能图书馆,采用了AR和VR等尖端技术,图书馆使用AIGC来实现图书推荐,并能根据用户行为和偏爱来进行实时建议。这也是一个是非常棒的实践。侧面说明了AIGC的大有作为,还是非常值得我们期待的。希望能运用到更多的行业里面,带给我们更多的惊喜。

3.3 一篇很不错的Java面试题博客

这篇博客我们感觉讲到的面试题都非常常见且全面,我日常也会看,可能有些知识点我们目前还没有学过,但是我觉得我们还是很有必要看一下的。

Java 面试必会(应届必备)_java工作面试_书启秋枫的博客-CSDN博客代理模式。_java工作面试https://blog.csdn.net/qq_45037155/article/details/128560597?spm=1001.2014.3001.5506

四、学习技巧的总结

通过这一周的学习,感觉面试题还是得天天看,八股文还是得看,还要算法题也是要每周最少做一道才行,不然脑子总是不好使了。然后有时间的话也可以看一些外文期刊,不仅可以提高一下我们的见识,同时也是训练我们的英语水平。总的来说还是非常nice。


http://www.ppmy.cn/news/1027002.html

相关文章

go的gin和gorm框架实现切换身份的接口

使用go的gin和gorm框架实现切换身份的接口&#xff0c;接收前端发送的JSON对象&#xff0c;查询数据库并更新&#xff0c;返回前端信息 接收前端发来的JSON对象&#xff0c;包含由openid和登陆状态组成的一个string和要切换的身份码int型 后端接收后判断要切换的身份是否低于该…

Linux tar包安装 Prometheus 和 Grafana(知识点:systemd Unit/重定向)

0. 介绍 用tar包的方式安装 Prometheus 和 Grafana Prometheus:开源的监控方案Grafana:将Prometheus的数据可视化平台 1. Prometheus 1. 下载 与 解压 官网下载: https://prometheus.io/download/#prometheus上传至机器解压命令:tar -xzf prometheus-*.tar.gz 2. 启动与暂…

复现广联达-Linkworks 协同办公管理平台ConfigService.asmx接口SQL注入漏洞

目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现 一、漏洞描述 广联达科技股份有限公司成立于1998年,以建设工程领域专业应用为核心基础支撑,以产业大数据、产业新金融等为增值服务的数字建筑平台服务商。广联达-Linkworks 协同办公管理平台ConfigService.…

企业服务器数据库遭到malox勒索病毒攻击后如何解决,勒索病毒解密

网络技术的发展不仅为企业带来了更高的效率&#xff0c;还为企业带来信息安全威胁&#xff0c;其中较为常见的就是勒索病毒攻击。近期&#xff0c;我们公司收到很多企业的求助&#xff0c;企业的服务器数据库遭到了malox勒索病毒攻击&#xff0c;导致系统内部的许多重要数据被加…

面试八股文Mysql:(2)数据库调优

1. SQL优化很有必要 数据库优化在提升系统性能是很重要的一个方面&#xff0c;不管是MySQL还是MongoDB还是其它的数据库。 SQL优化在提升系统性能中是成本最低 && 优化效果最明显的途径&#xff0c;可以让吞吐量更大&#xff0c;响应速度更快。如果你的团队在SQL优化这…

【C语言】每日一题---1

大家好&#xff0c;我是苏貝&#xff0c;本篇博客是系列博客每日一题的第一篇&#xff0c;本系列的题都不会太难&#xff0c;如果大家对这种系列的博客感兴趣的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 下面代码的结果是&#xff1a; #include <…

OptaPlanner笔记2

1.5.3 使用maven 修改pom.xml 导入optaplanner-bom以避免为每一个依赖项重复添加版本号 <project>...<dependencyManagement><dependencies><dependency><groupId>org.optaplanner</groupId><artifactId>optaplanner-bom</art…

C++笔记之将定时器加入向量并设置定时器的ID为i

C笔记之将定时器加入向量并设置定时器的ID为i code review! 文章目录 C笔记之将定时器加入向量并设置定时器的ID为i关于代码中的void operator()() 运行 代码 #include <chrono> #include <iostream> #include <thread> #include <vector>// 定义定时…