数据结构论坛

首页 » 分类 » 定义 » 每日算法amp面试题一起肥学9
TUhjnbcbe - 2023/10/13 17:10:00
目录题外话算法题一点点思路源码和详解面试题资料获取题外话

昨天有小伙伴找我,问有很多题不会怎么办?了解完之后发现是数据结构这块还不太了解,很多知识不知道怎么建链表和栈都不太了解。我建议还是从数据结构看看把这块补上来我们再慢慢来刷题,至于怎么补如果小伙伴没有好的计划也可以来私聊我,我给大家找找资源。

算法题

给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列。

示例:输入:nums=[,,]输出:[[,,],[,,],[,,]]

示例:输入:nums=[,,]输出:[[,,],[,,],[,,],[,,],[,,],[,,]]

提示:=nums.lngth=8-0=nums=0

一点点思路

跟着我做题的小伙伴可能会发现了,今天的题只是昨天题的加强版。不熟悉思路的大佬可以看看肥肥的,这次我们依旧采用上次的方法。

源码和详解

本题和昨天的相比最主要的就是解决重复的问题保证在填第\txtit{idx}idx个数的时候重复数字只会被填入一次即可。大家可以参照昨天的文章来看看。

classSolution{boolan[]arr;publicListListIntgrprmutUniqu(int[]nums){ListListIntgrans=nwArrayListListIntgr();ListIntgrprm=nwArrayListIntgr();arr=nwboolan[nums.lngth];Arrays.sort(nums);backtrack(nums,ans,0,prm);turnans;}publicvoidbacktrack(int[]nums,ListListIntgrans,intidx,ListIntgrprm){if(idx==nums.lngth){ans.add(nwArrayListIntgr(prm));turn;}for(inti=0;inums.lngth;++i){if(arr

(i0nums==nums[i-]!arr[i-])){continu;}prm.add(nums);arr=tru;backtrack(nums,ans,idx+,prm);arr=fals;prm.mov(idx);}}}

面试题

MySQL中drop,dlt与truncat的区别

相同点:

truncat和不带wh子句的dlt,以及drop都会删除表内的数据

不同点:

truncat会清除表数据并重置id从开始,dlt就只删除记录,drop可以用来删除表或数据库并且将表所占用的空间全部释放truncat和dlt只删除数据不删除表的结构。drop语句将删除表的结构被依赖的约(constrain),触发器(triggr),依赖于该表的存储过程/函数将保留,但是变为invalid状态。速度上一般来说:droptruncatdlt使用上,想删除部分数据行用dlt,想删除表用drop,想保留表而将所有数据删除,如果和事务无关,用truncat即可。如果和事务有关,或者想触发triggr,还是用dlt。dlt是DML语句,不会自动提交。drop/truncat都是DDL语句,执行后会自动提交。

资料获取,
1