查看: 702| 回复: 1
跳转到指定楼层
上一主题 下一主题
收起左侧

[学Java/C#] LeetCode 46 题的一个疑问

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
可以运行的Java代码如下:
  1. class Solution {
  2.    
  3.     List<List<Integer>> res;
  4.     boolean[] visited;
  5.     int[] nums;
  6.    
  7.    
  8.     public List<List<Integer>> permute(int[] nums) {
  9.      
  10.         res = new LinkedList<>();
  11.         visited = new boolean[nums.length];
  12.         this.nums = nums;
  13.         
  14.         helper(new LinkedList<>());
  15.         
  16.         return res;
  17.     }
  18.    
  19.    
  20.     public void helper(List<Integer> curr){
  21.         
  22.         if(curr.size() == nums.length){
  23.             res.add(new LinkedList<>(curr));            
  24.             return;
  25.         }
  26.         
  27.         for(int i = 0; i <= nums.length - 1; i++){
  28.             
  29.             if(visited[i] == false){
  30.             
  31.                 visited[i] = true;
  32.                 curr.add(nums[i]);
  33.                
  34.                 helper(curr);
  35.                
  36.                 visited[i] = false;
  37.                 curr.remove(curr.size() - 1);   
  38.             }
  39.         }        
  40.     }
  41. }
复制代码
但如果,我把这一行:

for(int i = 0; i <= nums.length - 1; i++){

改成:

for(int i = 0; i <= nums.length - 1 && visited[i] == false; i++){

答案就不对了。所以我发现不能把visited[i] == false 加到这里。但不知道为什么,有人知道吗?

评分

参与人数 1大米 +2 收起 理由
14417335 + 2 给你点个赞!

查看全部评分


上一篇:为什么买不了leetcode premium
下一篇:图和Dijkstra复杂度问题
地里匿名用户
🔗
匿名用户-71BIU  2022-7-4 17:32:12
1. visited == false 这个写法是不是很不好? 是不是可以写成 !visited[i]
2. for(int i = 0; i <= nums.length - 1 && visited == false; i++){ 一旦碰到false,for loop结束了,后边的true都碰不到了。
[/i]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表