昨天有小伙伴找我,问有很多题不会怎么办?了解完之后发现是数据结构这块还不太了解,很多知识不知道怎么建链表和栈都不太了解。我建议还是从数据结构看看把这块补上来我们再慢慢来刷题,至于怎么补如果小伙伴没有好的计划也可以来私聊我,我给大家找找资源。
算法题给定一个可包含重复数字的序列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语句,执行后会自动提交。
资料获取,