leetcode2
发表于|更新于|算法
|浏览量:
文章作者: 旅人
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 旅人!
相关推荐
2024-08-05
leetcode1
暴力思路:可以直接使用set记录下节点的地址值,如果有重复那么就是有环,如果指针走到了最后那么就说明无环 1234567891011public boolean hasCycle(ListNode head) { Set set = new HashSet<>(); while (head != null) { if(!set.contains(head)){ set.add(head); }else return true; head=head.next; } return false; } 双指针思路:使用快慢指针,如果快指针和慢指针相撞,就说明有环,如果快指针走到头,就说明无环 12345678910111213public boolean hasCycle(Li...
2025-04-08
大文件上传
对于后端来说,如果文件上传的时候采用一整个上传的方式,那么后端需要在内存中留出很大一部分空间来进行一个中转。如果文件过大,那么可能会造成内存空间的拥挤,频繁的IO造成服务器性能的下降,在web这个多并发的情况下,性能的下降会导致响应时间的增加,严重甚至会导致服务的崩溃。所以我们要对大文件的上传进行专门的优化。 同时,过大的文件传输也会长时间的占用网络信道,会导致网络的拥塞,其余的服务响应时间也会增加。 总结来说,传统整文件上传面临三个核心问题: 内存压力 — 服务端需要一次性将整个文件加载到内存中,上百MB甚至GB级的文件很容易导致OOM 网络不稳定 — 传输过程中一旦网络中断,整个文件需要重新上传,用户体验极差 上传时间过长 — 单连接串行传输,无法充分利用带宽,用户等待时间长 整体方案:文件分片核心思路是:将大文件切分成多个小片段,逐片上传,最后在服务端合并还原。 我们和前端约定,在上传文件的时候,将文件切片处理,传输的时候附带有文件的唯一标识,以及文件切片数,切片标识。 在后端时,我们创建临时文件夹来存储临时切片,在前端传入的标识和切片总数达标的时候,开始在后端合...