数学

leetcode 7 整数反转

思路分析:记住就好。对10取余,将取余的结果,也就是最低位当成高位,之后对x除以10来减少位数。最简单的数学题。需要注意的是,溢出就返回0,这里定义一个long类型,溢出int型范围的数都返回0,没溢出的强转成int。**(非常实际的做法)**类似的题目还有第9、1281题。

class Solution {
    public int reverse(int x) {
        long sum=0;
        while(x!=0){
            int n=x%10;
            x/=10;
            sum=sum*10+n;
        }
        if(sum>Integer.MAX_VALUE||sum<Integer.MIN_VALUE){
            return 0;
        }
        return (int)sum;
    }
}

leetcode 50题 Pow(x,n)
思路:首先必须掌握api。如果连api都不能掌握的话,那一定是做不出来的。

class Solution {
    public double myPow(double x, int n) {
        return Math.pow(x,n);
    }
}
leetcode 69 x的平方根

思路:首先必须掌握api。如果连api都不能掌握的话,那一定是做不出来的。

class Solution {
    public int mySqrt(int x) {
        return (int)(Math.sqrt(x));
    }
}
leetcode 172阶乘后的零

思路:题目提示了5!有一个0,那么只需要关注一个数包含几个5即可。可以记住这个结论。一个数是5的几倍,阶乘就有几个零

class Solution {
    public int trailingZeroes(int n) {
        int count = 0;
        while(n >= 5) {
            count += n / 5;
            n /= 5;
        }
        return count;
    }
}
leetcode49 丑数(重要的一道题)

思路分析:只包括因子2,3,5的数称为丑数。可以注意到2,3,5是互质的。那么把2,3,5作为基本指针。之后让i从1开始遍历到n。为了减少重复计算,取最小的那个。乘以哪个因子就对哪个因子的指针后移。

class Solution {
    public int nthUglyNumber(int n) {
        if(n<=0){
            return -1;
        }
        int[] dp = new int[n];
        dp[0]=1;
        int id2=0,id3=0,id5=0;
        for(int i=1;i<n;i++){
            dp[i]=Math.min(dp[id2]*2,Math.min(dp[id3]*3,dp[id5]*5));
            if(dp[id2]*2==dp[i])
            id2+=1;
            if(dp[id3]*3==dp[i]){
                id3+=1;
            }
            if(dp[id5]*5==dp[i]){
                id5+=1;
            }
        }
        return dp[n-1];
    }
}
leetcode 剑指offer 面试题14-1 剪绳子(经典题

思路:把一个数不停地分割成3+4那么它的乘积就是最大的。这是需要记住的结论。 即一个数减到4就不减了,直接乘。不然就给他减3。

class Solution {
    public int cuttingRope(int n) {
        if(n==1||n==2){
            return 1;
        }
        if(n==3){
            return 2;
        }
        int sum=1;
        while(n>4){
            sum*=3;
            n-=3;
        }
        return sum*n;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值