ARTS第一周20200523

2020-05-24  本文已影响0人  chenyuan21177

Algorithm

零钱兑换

给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1

示例1

输入: coins = [1, 2, 5], amount = 11
输出: 3
解释: 11 = 5 + 5 + 1

示例2

输入: coins = [2], amount = 3
输出: -1

代码实现

  public int coinChange(int[] coins, int amount) {
        if (amount <0 || coins == null || coins.length == 0) {
            return -1;
        }
        int[] state = new int[amount + 1];
        for (int i = 0; i <= amount; i++) {
            state[i] = -1;
        }
        state[0] = 0;
        for (int i = 1; i <= amount; i++) {
            for (int j = 0; j < coins.length; j++) {
                if (i - coins[j] >= 0 && state[i - coins[j]] >= 0) {
                    int count = state[i - coins[j]] + 1;
                    if (state[i] < 0 || state[i] > count) {
                        state[i] = count;
                    }
                }
            }
        }
        return state[amount];
    }

Review

成为超级学习者的6个习惯

Tip

脱o选型处理

Power Designer:

首先使用pd连接Oracle生成表结构,然后切换到mysql同步表结构到mysql。
遇到的问题:pd不支持64位机器jdk使用jdbc连接数据库,64位安装32位jdk连接数据库会出现账号密码错误,暂时没有定位到原因

Navicat Premium:

此工具支持连接多数据源,可以配置Oracle导库到mysql。
注意:主键不会自动配置,需要手动设置主键自增;默认值需要手动设置;索引和视图需要检查是否匹配。

Share

引用左耳朵耗子使用简单方法进行独立思考

上一篇下一篇

猜你喜欢

热点阅读