LeetCode刷题1

in 力扣 with 4005 comments

题目描述

给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。
如果反转后整数超过32位的有符号整数的范围 [−2^31,2^31−1],就返回 0。
假设环境不允许存储64位整数(有符号或无符号)。


思路

1.数字反转
利用%和/,将x的最后一位数字提取出来,放到返回数字rev的最前面,由于是10进制整数,所以只要每次操作时*10进一位。

int digit = x % 10;// 提取最后一位数字
x /= 10;// x去除最后一位
rev = rev*10 + digit;// rev初始值为0,赋值给最终的数字

2.整数反转的范围限制

题目要求x是32位无符号整数,环境不允许存储64位整数
反转后整数超过32位的有符号整数的范围就返回0
官方思路
-2^31 <= rev * 10 + digit <= 2^31-1
不等式不成立则返回0
然后一堆花里胡哨数学操作ToT
推导成了
(-2^31)/10 <= rev <= (2^31-1)/10
写的乱主要是不会传图,划掉

//最终代码,这里INT_MIN和INT_MAX应该是c语言中定义的int型的最大最小值
int reverse(int x) {
    int rev = 0;
    while (x != 0) {
        if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {
            return 0;
        }
        int digit = x % 10;
        x /= 10;
        rev = rev * 10 + digit;
    }
    return rev;
}

我的理解
在数字转化的过程中,只要x不为0,rev就会比原来的值大10倍+,即rev = rev*10 + digit,所以为了避免超出范围,只要将rev和极值的1/10进行比较(在x!=0的前提下)。
假如还需要缩小范围,可以1、极值/100;2、条件改为while(x/10 !=0),不过该情况下对于x==0要单独考虑

今日总结

  1. 对于算法这方面还有很多需要加强的地方,主要在于做题的思路方面,需要多加练习。
  2. C、Java的基础方面还很薄弱,需要加强,多加练习
  3. 中等难度的题目就一头雾水了[o(╥﹏╥)o],我可真菜
Responses / Cancel Reply
  1. VanceShara

    http://registr-a.ru

    Reply
  2. url=

    Сантехника в Минске!

    Интернет-магазин сантехники Байдом предлагает купить сантехнику для ванной, кухни или туалета.
    В каталоге представлено более 100 000 товарных позиций самых известных и популярных брендов
    стран Европы, Азии и России.

    Вы можете сделать заказ товаров онлайн. Удобная оплата и доставка в любой город Беларуси,
    по вашему адресу. Также приглашаем посетить один из наших розничных магазинов в Минске,
    Витебске и Могилеве.

    Предоставляем рассрочку без процентов и переплат.
    У нас регулярно проходят акции, большие скидки и распродажи,
    позволяющие легко приобрести дорогие товары по очень выгодным ценам.

    На нашем сайте вы можете заказать услугу установки душевой кабины, гидромассажной ванны и
    другой техники, которую вы приобрели у нас.

    Сайт интернет-магазин сантехники bydom.by
    url=

    Reply
  3. url=
    Всё о строительстве, дизайне и ремонте в своём доме.

    Что вы найдете на нашем сайте?
    Экспертные советы
    Статьи разработаны профессионалами в области строительства, дизайна и ремонта.

    Полезные ресурсы
    Ссылки на проверенные магазины, услуги и материалы, которые помогут вам в ваших проектах.

    Модные тренды
    Мы следим за последними тенденциями и новинками в мире строительства и дизайна.

    «Свой Угол» – ваш проводник в мире уюта и стиля в вашем доме. Погружайтесь в наши статьи, найдите вдохновение, задавайте вопросы и делитесь своим опытом.
    Создайте свой угол вместе с нами!

    Информационный портал svoyugol.by
    url=

    Reply
  4. JamesLok

    https://saloncloudsplus.com/authpaymet/pgs/888starz-promo-code.html

    Reply
  5. для коммерческого помещения.
    с использованием привода.
    Подсказки по выбору и установке привода для жалюзей.
    Преимущества автоматизированного привода для жалюзи.
    Тенденции в автоматизации жалюзи с помощью привода.
    Как управлять жалюзями с помощью смартфона с использованием привода.
    Шаг за шагом по инструкции по установке привода для жалюзи.
    Экономьте время и энергию с автоматизированным приводом для жалюзи.
    Необычное применение приводов для управления жалюзями.
    Как повысить уровень комфорта с приводом для жалюзи.
    жалюзи вентиляционные с ручным приводом жалюзи вентиляционные с ручным приводом .

    Reply
  6. BioklopikExo

    The promo code for 1XBET is "1XBUM." By utilizing this code, you can unlock a special bonus for sports betting, offering a 100% match up to $130, or for casino games, a bonus of $1,950 along with 150 free spins. New players have the opportunity to input our 1xBet bonus code to enhance the standard sports free bet bonus by an additional $100. A 1xBet promo code consists of a combination of letters and numbers that you enter in a designated voucher field to access these advantageous offers.

    [url=http://centroculturalrecoleta.org/blog/pages/1xbet_promo_code_2022.html]free promo code 1xbet today[/url]

    Reply
  7. KdesokjhyGub

    The promo code for 1XBET is "1XBUM." By utilizing this code, you can unlock a special bonus for sports betting, offering a 100% match up to $130, or for casino games, a bonus of $1,950 along with 150 free spins. New players have the opportunity to input our 1xBet bonus code to enhance the standard sports free bet bonus by an additional $100. A 1xBet promo code consists of a combination of letters and numbers that you enter in a designated voucher field to access these advantageous offers.

    [url=https://playplayfun.com/articles/1xbet_promo_code_nigeria_bonus.html]what is 1xbet promo code[/url]

    Reply
  8. пары порно чат
    [url=https://rt.chatflirt18.ru]видео чат порно пары[/url] рунетки пары

    Reply
  9. https://www.certificadosenergeticos.com/wp-content/pages/code-promo-1xbet-bonus-inscription.html

    Reply
  10. секс чат пара
    бонго эро чат онлайн эро чат пары

    Reply