zoukankan      html  css  js  c++  java
  • LeetCode中的bug!!!!!!

    1. Two Sum 

    第36行本来应该是if (nodes.get(left).key < nodes.get(right).key) { 一不小心误写成了if (nodes.get(left).key < nodes.get(right).value) { 竟然A了!!!!

     1 class Node{
     2     int key;
     3     int value;
     4     public Node(int key, int value) {
     5         this.key = key;
     6         this.value = value;
     7     }
     8 }
     9 public class Solution {
    10     /*
    11      * @param numbers : An array of Integer
    12      * @param target : target = numbers[index1] + numbers[index2]
    13      * @return : [index1 + 1, index2 + 1] (index1 < index2)
    14      */
    15     public int[] twoSum(int[] numbers, int target) {
    16         if (numbers == null || numbers.length <= 1) {
    17             return new int [2];
    18         }
    19         //put the key and value in list, the type of list is Node
    20         List<Node> nodes = new ArrayList<>();
    21         for (int i = 0; i < numbers.length; i++) {
    22             nodes.add(new Node(i, numbers[i]));
    23         }
    24         //sort the list
    25         Collections.sort(nodes, new Comparator<Node>() {
    26             public int compare(Node a, Node b) {
    27                 return a.value - b.value;
    28             }
    29         });
    30         // Two points
    31         int left = 0;
    32         int right = numbers.length - 1;
    33         int[] result = new int[2];
    34         while (left < right) {
    35             if (nodes.get(left).value + nodes.get(right).value == target) {
    36                 if (nodes.get(left).key < nodes.get(right).value) { //第二个明显应该是key,但是第一次不小心写成了value,居然A了,但是lintcode却不能A
    37                     result[0] = nodes.get(left).key;
    38                     result[1] = nodes.get(right).key;
    39                 } else {
    40                     result[0] = nodes.get(right).key;
    41                     result[1] = nodes.get(left).key;
    42                 }
    43                 return result;
    44             } else if (nodes.get(left).value + nodes.get(right).value < target) {
    45                 left++;
    46             } else {
    47                 right--;
    48             }
    49         }
    50         return result;
    51     }
    52 }

     572. Subtree of Another Tree 

     1 /**
     2  * Definition for a binary tree node.
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 public class Solution {
    11     public boolean isSubtree(TreeNode root1, TreeNode root2) {
    12         //如果root2不进行判断,也A了,但是很明显这样是错的
    13         //这样的话并没有考虑,两个都为空,以及root1不为空,而root2为空的情况
    14         if (root2 == null) {
    15             return true;
    16         }    
    17         if (root1 == null) {
    18             return false;
    19         }
    20         if(isEqual(root1, root2)) {
    21             return true;
    22         }
    23         return isSubtree(root1.left, root2) || isSubtree(root1.right, root2);
    24     }
    25     public boolean isEqual(TreeNode root1, TreeNode root2) {
    26         if (root1 == null || root2 == null) {
    27             return root1 == root2;
    28         }
    29         if (root1.val != root2.val) {
    30             return false;
    31         }
    32         return isEqual(root1.left, root2.left) && isEqual(root1.right, root2.right);
    33     }
    34 }
  • 相关阅读:
    iOS判断为空或者只为空格
    一个CRM OData的性能问题分析
    什么是SAP UI5的Component-preload.js
    SAP CRM的状态管理和权限控制的集成
    如何使用SAP Intelligent Robotic Process Automation自动操作Excel
    利用S_MEMORY_INSPECTOR分析内存泄漏问题
    SAP CRM WebClient UI的搜索条件是怎么渲染出来的
    SAP CRM WebClient UI的内存清理策略分析
    SAP CRM产品主数据应用里value node和model node的转换
    如何查找SAP Fiori UI上某个字段对应的底层数据库表
  • 原文地址:https://www.cnblogs.com/muziyueyueniao/p/7087342.html
Copyright © 2011-2022 走看看