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

news2025/1/12 22:58:25

目录

前言

一、学习的内容

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

三、学习打卡成果展示

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.coloradmin.cn/o/870153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Javascript异步编程的4种方法

你可能知道&#xff0c;Javascript语言的执行环境是"单线程"&#xff08;single thread&#xff09;。 所谓"单线程"&#xff0c;就是指一次只能完成一件任务。如果有多个任务&#xff0c;就必须排队&#xff0c;前面一个任务完成&#xff0c;再执行后面一…

使用selenium如何实现自动登录

回顾使用requests如何实现自动登录一文中&#xff0c;提到好多网站在我们登录过后&#xff0c;在之后的某段时间内访问该网页时&#xff0c;不会给出请登录的提示&#xff0c;时间到期后就会提示请登录&#xff01;这样在使用爬虫访问网页时还要登录&#xff0c;打乱我们的节奏…

【Linux】以太网协议——数据链路层

链路层解决的问题 IP拥有将数据跨网络从一台主机送到另一台主机的能力&#xff0c;但IP并不能保证每次都能够将数据可靠的送到对端主机&#xff0c;因此IP需要上层TCP为其提供可靠性保证&#xff0c;比如数据丢包后TCP可以让IP重新发送数据&#xff0c;最终在TCP提供的可靠性机…

数据通信——网络层(ACL)

引言 在网络中会区分三个区域&#xff1a;&#xff08;Trust&#xff09;内网&#xff0c;&#xff08;UnTrust&#xff09;外网&#xff0c;&#xff08;DM2&#xff09;非军事化区域 防火墙在网络中可以阻止DM2对Trust的访问。同理&#xff0c;从Trust到UnTrust或者UnTrust到…

STM32 CubeMX (uart_IAP串口)简单示例

STM32 CubeMX [TOC]( STM32 CubeMX (uart_IAP串口)简单示例) 前言 单片机flash有两部分1.IAP程序和2.APP程序&#xff1b;IAP是烧录工具烧录的&#xff0c;App是串口烧录的 #1.IAP程序设置,程序地址 #2.APP程序设置&#xff0c;程序地址 生成bin文件 fromelf.exe --bin -o …

2023高教社杯数学建模A题 B题C题 D题 E题思路代码分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

指针的进阶--从入门到入土

指针--变态加强版 前言面试题字符指针指针数组数组指针函数指针函数指针数组指向函数指针数组的指针面试题解析结语 前言 掌握指针这块知识的重要性不言而喻&#xff0c;当你觉得自己已经差不多掌握指针的时候&#xff0c;不妨看看下面8道面试题&#xff08;题目从简单到困难&…

三级城市展示省市区树

展示效果 数据库展示 业务代码 /*** 省市区树*/VLicenseApiOperation("查询经纬度")ApiImplicitParam(name "FnCity", value "省市区树", dataType "FnCity")GetMapping("/districtlist")public AjaxResult districtlist…

STM32F429IGT6使用CubeMX配置IIC通信(AT2402芯片)

1、硬件电路 写地址&#xff1a;0xA0 读地址&#xff1a;0xA1 存储容量&#xff1a;256Byte 2、设置RCC&#xff0c;选择高速外部时钟HSE,时钟设置为180MHz 3、配置IIC 4、生成工程配置 5、部分代码 #define IIC_WRITE_ADDR 0xA0 // IIC写地址 #define IIC_READ_ADDR 0xA1 …

数据结构----哈夫曼树

这里写目录标题 基本概念引子基本概念各种路径长度各种带权路径长度结点的带权路径长度树的带权路径长度哈夫曼树 哈夫曼树的构造理论基础构造思想总结 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录…

exec族函数

本节学习exec族函数&#xff0c;并大量参考了以下链接&#xff1a; linux进程---exec族函数(execl, execlp, execle, execv, execvp, execvpe)_云英的博客-CSDN博客 exec族函数函数的作用 我们用fork函数创建新进程后&#xff0c;经常会在新进程中调用exec函数去执行另外一个程…

从零构建深度学习推理框架-8 卷积算子实现

其实这一次课还蛮好理解的&#xff1a; 首先将kernel展平&#xff1a; for (uint32_t g 0; g < groups; g) {std::vector<arma::fmat> kernel_matrix_arr(kernel_count_group);arma::fmat kernel_matrix_c(1, row_len * input_c_group);for (uint32_t k 0; k < k…

【leetcode】前缀和

内容摘抄自&#xff1a; 小而美的算法技巧&#xff1a;前缀和数组 | labuladong 的算法小抄 一维数组的前缀和 看这个 preSum 数组&#xff0c;若想求索引区间 [1, 4] 内的所有元素之和&#xff0c; 就可以通过 preSum[5] - preSum[1] 得出。 class NumArray {private:// 前缀…

软件测试基础篇——Docker

1、docker技术概述 docker描述&#xff1a;docker是一项虚拟化的容器技术&#xff08;类似于虚拟机&#xff09;&#xff0c;docker技术给使用者提供一个平台&#xff0c;在该平台上可以利用提供的容器&#xff0c;对每一个应用程序进行单独的封装隔离&#xff0c;每一个应用程…

记录--用css画扇形菜单

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 1、效果图 用手机录屏再用小程序转换的gif&#xff0c;可能精度上有点欠缺。 2、实现过程 1、观察及思考 开始编码前我们首先观察展开后的结构&#xff1a;两个四分之一的圆加三个圆形菜单项。 文章名…

阿里云服务器部署Drupal网站教程基于CentOS系统

阿里云百科分享如何在CentOS 7操作系统的ECS实例上搭建Drupal电子商务网站。Drupal是使用PHP语言编写的开源内容管理框架&#xff08;CMF&#xff09;&#xff0c;它由内容管理系统&#xff08;CMS&#xff09;和PHP开发框架&#xff08;Framework&#xff09;共同构成。它用于…

【博客692】grafana如何解决step动态变化时可能出现range duration小于step

grafana如何解决step动态变化时可能出现range duration小于step 1、grafana中的step和resolution grafana中的 “step” grafana本身是没有提供step参数的&#xff0c;因为仪表盘根据查询数据区间以及仪表盘线条宽度等&#xff0c;对于不同查询&#xff0c;相同的step并不能…

编译redis-5.0.9报错zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录问题解决

上图 解决&#xff1a; make && make install MALLOClibc原因: 原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。

RedisDesktopManage

RDM 简介下载安装 简介 RedisDesktopManager&#xff08;RDM&#xff09;是一个开源的跨平台图形界面工具&#xff0c;用于管理和操作 Redis 数据库。它提供了一个用户友好的界面&#xff0c;使用户能够轻松地连接、浏览、查询和修改 Redis 数据&#xff0c;而无需使用命令行界…

bug解决:AssertionError: No inf checks were recorded for this optimizer.

这真的是最恶心的一个error&#xff08;比网络回传找哪层没有传播到还要恶心&#xff01;&#xff09;&#xff0c;找了好久的问题所在之处&#xff0c;最后偶然发现了这篇文章&#xff1a; 解决pytorch半精度amp训练nan问题 - 知乎 然后发现自己用的混合精度训练&#xff0c;发…