跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 一个简单的功能实现起来又臭又长。。。。大伙来帮我看看哈
未分類
26 3 月 2021

一个简单的功能实现起来又臭又长。。。。大伙来帮我看看哈

一个简单的功能实现起来又臭又长。。。。大伙来帮我看看哈

資深大佬 : phpIsNumberOne 6

用一个数组记录文件写入情况(是一小段一小段写入的,而且是无序的);输入的参数是一次写入开始的位置和结束的位置,比如数组0 8 46 55 则表示 0-8 和 46-55 的位置写入了数据,9-45 还没有写入数据。

  • 连续的应该合并

    又在 9-15 写入了数据,数组变为0 15 46 55

  • 覆盖的应该合并

​ 又在 13-19 写入了数据,数组变为 0 19 46 55

  • 不连续的应该增加

​ 又在 21-25 写入了数据,数组变为0 19 21 25 46 55

  • 跨段的应该合并

​ 又在 20-28 写入了数据,数组变为0 28 46 55

这个想法应该很好理解,当一个文件写入完成后,数组应该只有两个值0 fileSize。

我实现是进行分类讨论,估计还有个别情况没有考虑到,写得又长又臭。。。。

Golang 写的: demo

大佬有話說 (4)

  • 資深大佬 : xgfan

    代码确实很乱。
    先把记录数组排好序。就应该很好写了。
    如果还想更好写,就把起止下标作为一个结构。

  • 資深大佬 : lostvincent

    Insert Interval,比较常见到的东西了,LeetCode 有个原题比较接近:
    https://leetcode.com/problems/insert-interval/

    你可以看下讨论 or 自己做着玩

  • 資深大佬 : lychs1998

    可以参考 google guava 的 range 的实现。这个本质上就是一种区间。

  • 主 資深大佬 : phpIsNumberOne

    @lostvincent 感谢兄弟,现在心情很舒畅
    https://play.studygolang.com/p/ZIdAFw6iGa7

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具