zoukankan      html  css  js  c++  java
  • Lettcode刷题笔记(三)

    9. 回文数

    示例 1:

    输入: 121
    输出: true
    示例 2:

    输入: -121
    输出: false
    解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
    示例 3:

    输入: 10
    输出: false
    解释: 从右向左读, 为 01 。因此它不是一个回文数。

    思路:这道题有两种解法。1.转换为字符串,然后判断前后字符串是否相等。2.利用算法让数字变量反转。

    我的解法是第一种:

    class Solution {
        public boolean isPalindrome(int x) {
    
           Integer a=new Integer(x);
           String  b=a.toString();
           int n=b.length();
           boolean re=true;
           for(int i=0;i<b.length();i++){
              //截取字符串进行判断
              if(b.substring(i,i+1).equals(b.substring(n-i-1,n-i))){
                 
              }else{
                 re=false;
              } 
           }
          return re;
        }
    }

    2.其他大佬的解法

    class Solution {
        public boolean isPalindrome(int x) {
            //如果x为负数或个位数为0的数一定不是回文数
            if(x<0||(x>0&&x%10==0)){
                return false;
            }
            int reverseNum=0;
            //当x小于或等于reverseNum时,反转完成
            while (x>reverseNum){
                reverseNum=reverseNum*10+x%10;
                x/=10;
            }
    
            //reverseNum%10==x考虑的是奇数的情况,reverseNum取多了一位,需要去掉再比较
            return reverseNum==x||reverseNum/10==x;
        }
    }

    453. 最小移动次数使数组元素相等

    给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动将会使 n - 1 个元素增加 1。

     示例:

    输入:
    [1,2,3]

    输出:
    3

    解释:
    只需要3次移动(注意每次移动会增加两个元素的值):

    [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]

    思路:这道题我没有做出来。看了大佬的方法才做来的     

    每次使n-1个元素+1 完全等效于 每次使1个元素-1然后所有元素+1
    所以只需找出:每次让1个元素-1,多少次后所有元素相等

     来自 题解:《一丝灵感的方法》  作者:candy-12

    class Solution {
        public int minMoves(int[] nums) {
            Arrays.sort(nums);
            int s = 0;
            for (int i = 0; i < nums.length; i++) {
                s += nums[i] - nums[0];
            }
            return s;
        }
    }
    
    作者:candy-12
    链接:https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements/solution/yi-si-ling-gan-de-fang-fa-by-candy-12/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    结对四则运算04—网页版
    每周总结07
    每周总结06
    求循环数组中最大子数组的和
    每周总结05
    每周总结03
    每周总结04
    四则运算03
    开发过程记录
    Ubuntu下安装mysql和可视化工具超级简单教程
  • 原文地址:https://www.cnblogs.com/tzs123/p/13850904.html
Copyright © 2011-2022 走看看