Day45(70, 322, 279)

Posted MicroYui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day45(70, 322, 279)相关的知识,希望对你有一定的参考价值。

70. Climbing Stairs

You are climbing a staircase. It takes n steps to reach the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

Example 1:

Input: n = 2
Output: 2
Explanation: There are two ways to climb to the top.

  1. 1 step + 1 step
  2. 2 steps

Example 2:

Input: n = 3
Output: 3
Explanation: There are three ways to climb to the top.

  1. 1 step + 1 step + 1 step
  2. 1 step + 2 steps
  3. 2 steps + 1 step
class Solution   
    public int climbStairs(int n)   
        if (n == 1) return 1;  
        int[] stack = new int[2];  
        stack[0] = 1; stack[1] = 2;  
        for (int i = 2; i < n; i++)   
            int temp = stack[0] + stack[1];  
            stack[0] = stack[1];  
            stack[1] = temp;  
          
        return stack[1];  
      

322. Coin Change

You are given an integer array coins representing coins of different denominations and an integer amount representing a total amount of money.

Return the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1.

You may assume that you have an infinite number of each kind of coin.

Example 1:

Input: coins = [1,2,5], amount = 11
Output: 3
Explanation: 11 = 5 + 5 + 1

Example 2:

Input: coins = [2], amount = 3
Output: -1

Example 3:

Input: coins = [1], amount = 0
Output: 0

class Solution   
    public int coinChange(int[] coins, int amount)   
        int max = Integer.MAX_VALUE;  
        int[] dp = new int[amount + 1];  
        for (int j = 0; j < dp.length; j++)   
            dp[j] = max;  
          
        dp[0] = 0;  
        for (int i = 0; i < coins.length; i++)   
            for (int j = coins[i]; j <= amount; j++)   
                if (dp[j - coins[i]] != max)   
                    dp[j] = Math.min(dp[j], dp[j - coins[i]] + 1);  
                  
              
          
        return dp[amount] == max ? -1 : dp[amount];  
      

279. Perfect Squares

Given an integer n, return the least number of perfect square numbers that sum to n.

perfect square is an integer that is the square of an integer; in other words, it is the product of some integer with itself. For example, 149, and 16 are perfect squares while 3 and 11 are not.

Example 1:

Input: n = 12
Output: 3
Explanation: 12 = 4 + 4 + 4.

Example 2:

Input: n = 13
Output: 2
Explanation: 13 = 4 + 9.

class Solution   
    public int numSquares(int n)   
        int max = Integer.MAX_VALUE;  
        int[] dp = new int[n + 1];  
        for (int j = 0; j <= n; j++)   
            dp[j] = max;  
          
        dp[0] = 0;  
        for (int i = 1; i * i <= n; i++)   
            for (int j = i * i; j <= n; j++)   
                if (dp[j - i * i] != max)   
                    dp[j] = Math.min(dp[j], dp[j - i * i] + 1);  
                  
              
          
        return dp[n];  
      

伸手党福利文,Python入门大全


本篇内容是送给伸手党的福利,包括Python新手入门学习时间表+知识点+课程。

一、自学时间安排

新手最怕的是什么?毫无章法,尽管收藏了一堆资料知道从基础开始学起来。但由于对就业迷茫,所以还是不知道学什么内容。今天黑马大大为大家总结整理了自学时间安排表。下面时间安排尽量每天学习时间在5-6个小时。如果少于5小时,请自行添加学习天数;

Day1-Day15 Python语言基础

初始Python语言、语言元素、分支结构、循环结构、构造程序逻辑、函数和模块的使用、字符串和常用数据结构、面向对象编程基础、面向对象进阶、图形用户界面和游戏开发、文件和异常、字符串和正则表达式、进程和线程、网络编程和网络应用开发、图相和文档处理。

Day16-Day20 Python语言进阶

常用数据结构、函数的高级用法、面向对象高级知识、迭代器和生成器、并发和异步编程;

一般来说20天就可以掌握了Python相关基础。
如果大家学习过程中,每天只有1-2小时的时间安排,那么可以将基础拉到一个月的学习时间。再长就不好了,容易学了后面忘了前面。Python语言基础非常简单,建议视频入门,或者先看书籍《笨办法学Python》
Day21-Day30 Web前端入门
学会用HTML标签承载页面内容
用CSS渲染页面
用JavaScript处理交互式行为
jQuery入门和提高
Vue.js入门
Element使用
Bootatrap的使用

这个阶段不容易,很多Java开发和Python开发的同学,都会问我,我可以跳过web阶段的学习吗?答案是不可以!Java的web开发是为框架打基础,Python也一样,Python必学内容是爬虫,爬虫是一定要有web前端的基础。因为爬虫接触最多的就是前端页面、网络以及数据;

Day31-Day35 Linux操作系统

操作系统发展史和Linux概述、Linux的基础命令、Linux中的实用程序、Linux的文件系统、Vim编辑器的应用、环境变量和Shell编程、软件的安装和服务配置、网络访问和管理、其他相关内容。

Day35-Day40 数据库基础和进阶

关系型数据库MySQL:关系型数据库概述、MySQL的安装和使用、SQL的使用包括DDL,DWL,DCL;

相关知识,在Python中操作MySQL、NoSQL入门;

Day41-Day55 实战Django

首先要学的就是快速上手、深入到模型,静态资源和Ajax请求、表单应用、Cookie和Session、报表和日志、中间件的应用、前后端分离开发入门、RESTful架构和DRF入门、RESTful架构和DRF进阶、使用缓存、文件上传和富文本编辑、短信和右键、异步任务和定时任务、单元测试和项目上线。

Day56-Day60 实战Flask

Flask入门、模板的使用和表单的处理、数据库的操作、项目实战;

Day61-Day65 实战Tornado入门

预备知识、Tornado入门、异步化、WebSocket的应用、实战项目

Day66-Day75 爬虫开发

网络爬虫和相关工具、数据采集和解析、存储数据、并发下载、解析动态内容、表单交互和验证码处理、Scrapy入门、高级应用以及分布式实现、爬虫实战项目;

Day76-Day90 数据处理和机器学习

机器学习基础、Pandas的应用、Numpy和Scipy的应用、Matplotlib和数据可视化、K最邻近(KNN)分类、决策树、贝叶斯分类、支持向量机(SVM)、K—均值聚类、回归分析、大数据分析入门以及进阶、Tensorflow入门和实战、推荐系统。

Day91-Day100 团队项目开发

二、了解Python的就业方向

Python在各大语言排行榜上的上升趋势非常明显,而且现在语言的生态也越来越全,在Web开发、大数据、人工智能和嵌入式开发,后端开发等领域都有普遍的应用。随着大数据和人工智能不断的发展,现在Python的发展空间也非常好。

但是也会听到很多人说,Python很难就业。其实原因有一个,一般开发都是在一门主语言下学习了Python,但是单一会Python一门语言好就业吗?如果是可以找到爬虫、数据分析、运维、自动化测试、科学计算还是很好就业的。如果你学历比较好又对人工智能和机器学习有兴趣也可以选择这个方向。

2.1 Python在AI领域的介绍

目前很多有影响力的AI框架大多数是Python实现的,Python足够动态具有足够的性能,这是AI的技术特点。如基于Python的深度学习库、深度学习方向、机器学习方向、自然语言处理方向的一些网站基本都是通过Python来实现的。机器学习,特别是当前热门的深度学习中的大部分工具框架都提供了Python接口,简洁清晰的语法是深受开发者喜爱的。

三、Python2和3的区别

上述文章,从性能、编码、语法、字符串和字节串、数据类型、面向对象、异常、模块变动以及其他9个方面为大家整理了版本的区别。2021年选择入门的同学们尽量选择Python3入门。2021年黑马程序员Python学习路线图 >>内容中包含Python全部课程

四、上班族学Python有用吗?

相信大家铺天盖地的Python广告看了不少了,对于广大的996上班族来说,没有那么多的时间和精力有必要学Python吗?还是要看你具体的工作职责是什么,未来的发展方向是什么。

Python是可以帮助我们解决工作上的一些问题,比如爬虫。当我们需要采集数据的时候用它就可以提高工作效率。但是你说我是一个运营,我爬虫热点文章怎么样,我是觉得没有任何必要的。原因:现在平台太多了,可以查询的地方太多。

但是如果你未来的发展方向是专业的数据运营岗位,那么学Python就对未来的职业发展非常好了,Python可以帮助我们进行数据清洗、预处理、筛选并且汇总、分析操作等等。

适合Python的岗位有:新媒体、产品经理、财务、证券、金融相关工作的同志们。

以上是关于Day45(70, 322, 279)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCoed热题 HOT 汇总

[M背包] lc279. 完全平方数(完全背包)

leetcode 322. 零钱兑换----完全背包套路解法详细再探

Day278&279&280.线程双刃剑 -Juc

Day322.设计模式回顾 -Java设计模式

2022暑期复习-Day1