业务中遇到的表结构以及场景如下:
id name pid
1 A 0
2 A 1
3 A 2
4 B 0
5 B 4
6 B 5
7 C 0
8 D 7
9 E 8
是一个层级结构,名字可能相同,也可能不相同
上面整理出来的数据结构就是这样的
A
A
A
B
B
B
C
D
E
当前的需求是取出 name 对应第三层的pid和id,以及name 对应第二层的id
我们可以用sql实现
取出第三层对应的数据信息
select id,name,pid from table where name='A' order by id desc limit 1
取出第二层对应的数据信息
select id,name,pid from table where name='A' and pid != 0 order by id desc limit 1
从这个需求里面可以联想到取出含有重复数组中第一次出现的数字或者最后一次出现的数字
[1,2,2,2,3,3,5,6]
查找出第一个2所在的索引位置,查找出最后一个2所在的索引位置
这个我们可以直接暴力循环求解,也可以使用二分查找进行求解
总结:
-
我们日常业务中也是需要用到数据结构和算法的,所以打好算法和数据结构的基本功才能使我们更好的迎接变化
-
好的算法和数据结构一开始都是不容易理解的,不要着急,不要害怕,一点点的了解,学习最后到掌握以及灵活运用
-
Love code And Enjoy it