长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换,完成以下函数
假设0 3 1 2;第一次 3 0 1 2 ;3 1 0 2也就是0和1位置上交换 0 和1 交换
第二次 3 1 0 2 ;3 1 2 0;也就是0在位置2上,0与2交换;
第三次 3 1 2 0;0 1 2 3;也就是 0与3交换;
也就是先和ayy[i] 交换,之后0和i交换,将i位于ayy[i]上,位置归位
循环交换--对数字i来说,先将0与i位置的数字交换,即swap_with_zero(array, len, array[i]);
此时0在i位置,然后交换0与i即可。
链接:https://www.nowcoder.com/questionTerminal/2e5ea7147ea84f089496d23a57ee19fc?source=relative
来源:牛客网
广度优先搜索: 分层(找相邻的),标记为1的概念
v0进 v0出;然后 v2 v1 v3进;队列的结构,
v2出去,v0已经访问,v4 进来;v1出去,v0 v4已经访问 v5进来;v3出去,都访问,没进来;v4出去 v6进来;
v5出去,v6出去,为空,至此结束。
深度优先搜索 ;树的先序遍历
v0 到 v2 ; v2访问v0,访问v4;
v4访问v1 ;v1 访问v0 v4 v5; v5 访问v1 v3 ;
v3 回溯到v5 ; v5访问v6; v6访问v4,v5;
v6回溯v5 ; V1 v4 v2 v0;
https://blog.youkuaiyun.com/weixin_40953222/article/details/80544928
https://blog.youkuaiyun.com/seagal890/article/details/93343658#commentBox