编程入门—LeetCode刷题


title: 编程入门——LeetCode刷题
date: 2024-04-06 12:00:08
categories: LeetCode
tags:

  • LeetCode
  • static关键字
  • 条件运算符
  • 异或
  • 十进制转换二进制
  • 数字根
  • API
  • ASCII码
  • 位运算

2469 温度转换

为什么不能去掉static关键字?

将 static 关键字移除后,ans 数组将成为一个自动变量,其生存期将与其所在的函数convertTemperature相同。这意味着在函数执行完毕后,该数组将被销毁,而返回指向该数组的指针将会变得无效。

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
double* convertTemperature(double celsius, int* returnSize) {
    //静态
    static double ans[2];
    ans[0] = celsius + 273.15;
    ans[1] = celsius * 1.80 + 32.00;
    *returnSize = 2;
    return ans;
}

2413 最小偶倍数

C中唯一的三目/三元运算符————条件运算符

条件表达式结果:真返回1的值,假返回2的值

//语法格式
条件表达式 ? 表达式1 : 表达式2

1486 数组异或操作

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

0->0000
2->0010
4->0100
6->0110
8->1000

0^2=0010
2^4=0110=6
6^6=0
0^8=8

  • 异或

    • 逻辑关系:

    P=A⊕B(“⊕”是异或数学运算符号)
    AB不同,输出P=1,
    AB相同,输出P=0
    在计算机语言中,异或的符号为^

    • 异或运算

    进行异或计算前会把数值都转换为二进制

    • 本质:是一种将十进制转化为二进制的运算
    • 运算法则:
    1. 归零律:a^a = 0
    2. 恒等律:a^0 = a
    3. 交换律:a^b = b^a
    4. 结合律:abc = a(bc) = (ab)c
    5. 自反:aba = b
  • 十进制转换二进制
    b站讲解快速转换
    csdn理解

    • 整数部分——“除2取余,逆序排列”
      1.整数除以2,得到商和余数;
      2.商再除以2,又会得到商和余数,如此进行,直到商为小于1时为止,
      3.所有余数逆序排列√

    • 小数部分——“乘2取整,顺序排列”
      1.用2乘十进制小数,得到积,将积的整数部分取出
      2.再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止;
      3.取出的整数部分顺序排列√

258 各位相加(数根/位数根)

//超级2次改进;统一num是9的倍数的问题
class Solution {
    public int addDigits(int num) {
     return (num-1) % 9 +1;
    }
}
  • 数根
  • 自然数的一种性质,即每个自然数都有一个树根

例:54817的数根为7.
因为5+4+8+1+7=25,25大于10则再加一次,2+5=7,7小于十,则7为54817的数根

  • 用途:
    • 计算模运算的同余,对于非常大的数字的情况下可以节省很多时间
    • 检验计算正确性,如:两数字的和的数根等于两数字分别的数根的和
    • 判断数字的整除性,即:数根能被3或9整除,则原来的数也能被3或9整除
  • 找规律,得求法
原数: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
数根: 1 2 3 4 5 6 7 8 9  1  2  3  4  5  6  7  8  9  1  2  3  4  5  6  7  8  9  1  2  3 
  • 发现:数根 9 个为一组, 1 - 9 循环出现

709 转换成小写字母(@字符串)

java字母字符串转换 toLowerCase()、toUpperCase()

class Solution {
    public String toLowerCase(String s) {
        return s.toLowerCase();
    }
}
  • API——应用程序编程接口

    • 定义(百度百科)

    API(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    • 理解
    • 别人写好的代码,或者编译好的程序,提供给你使用,就叫做API。

    • 你使用了别人代码(程序中的某个函数、类、对象,就叫做使用了某个API。

  • ASCII码

    • 美国信息交换标准代码(American Standard Code for Information Interchange)

是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。
ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符

  • 包含内容
    • 控制字符:回车键、退格、换行键等。
    • 可显示字符:英文大小写字符、阿拉伯数字和西文符号

231 2的幂(@位运算 递归 数学)

一个数是2的幂,当且仅当n是正整数,且n的二进制表示中仅包含1个1

  • 位运算
  • 位运算的由来
    在计算机里面,任何数据最终都是用数字来表示的(包括平时用的软件,看的图片,视频,文字)。并且计算机运算单元只认识高低电位,转化成我们认识的逻辑,也就是 0和1。
    学习视频
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值