请教一下这种情况的话属于哪种算法可以解决呢?

2023-03-03 16:56:48 +08:00
 cencoroll
业务中碰到难道这样的需求.....
需要用户输入 6 个数据:
起始层,列,排 [a, b, c]
终止层,列,排。[x, y, z]
根据输入的起始和终止数据创建(a~x)*(b~y)*(c-z)个数据,如:
起始 1,1,1 终止 10,10,2 (需要创建 200 个对象,每个对象的层( 1~10 ),列( 1~10 ),排( 1~2 )有对应的坐标)

如果不想用三层 for 循环的话可以,有没有哪道 leetcode 题目的算法是类似的可以解决这个问题?
540 次点击
所在节点    问与答
3 条回复
LxExExl
2023-03-03 17:58:34 +08:00
需要创建 x*y*z 个结果,每个结果复杂度是 O(1), 这已经需要三个循环了。咋可能更快呢?

还是楼主需要那种 one liner 语法糖呢?
cencoroll
2023-03-03 18:57:36 +08:00
刚开始修炼算法,被 leetcode 的题目震撼,以为有那种可以更精妙的写法
whileFalse
2023-03-04 13:11:47 +08:00
可以把三维数组展开成单维数组,但在业务场景上性能差不了太多,没意义还影响阅读。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/920887

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX