• 领扣(LeetCode)回文链表 个人题解


    请判断一个链表是否为回文链表。

    示例 1:

    输入: 1->2
    输出: false

    示例 2:

    输入: 1->2->2->1
    输出: true
    

    进阶:
    你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

    一个最暴力的做法,遍历一次,内容保存在数组内,然后判断是否回文。

    遇到一个比较严重的问题需要记录一下,使用Vector类时,设定的类型为Integer,必须使用Equals函数来判断两数是否相等,使用==则不行。奇怪的是,只有部分判断是错误的。

    查阅百度,发现了问题所在:

    这种行为差异的原因是JVM维护Integer范围为-128到127 的对象的缓存(可以使用系统属性“java.lang.Integer.IntegerCache.high”

    或JVM来覆盖上限值参数“-XX:AutoBoxCacheMax = size”)。对于此范围内的值,Integer.valueOf()将返回缓存的值,而不是创建一个新的值。

    所以,虽然没有达到题目的进阶要求使用O(1)的空间复杂度完成问题,但还是学习到了新的知识点。

    代码如下:

     1 class Solution {
     2     public boolean isPalindrome(ListNode head) {
     3         Vector<Integer> vector=new Vector<>();
     4         if(head==null)
     5             return true;
     6         else
     7             vector.add(head.val);
     8         while(head.next!=null)
     9         {
    10             vector.add(head.next.val);
    11             head=head.next;
    12         }
    13         int left=0,right=vector.size()-1;
    14         while(left<=right)
    15         {
    16             System.out.println(vector.get(left)+"***"+vector.get(right));
    17             if(vector.get(left).equals(vector.get(right)))
    18             {
    19                 left++;
    20                 right--;
    21                 continue;
    22             }
    23             else 
    24                 return false;
    25         }
    26         return true;
    27     }
    28 }
  • 相关阅读:
    js中const,var,let区别与用法
    poi excel 导出
    spring 实体类 date类型字段处理
    mysql 1449 : The user specified as a definer ('root'@'%') does not exist
    pjax学习
    上传文件 connection reset
    mysql连接问题
    Scala Actor Model
    Scala 隐式转换
    Scala Trait+Match+Case class+偏函数
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10054725.html
Copyright © 2020-2023  润新知