Python:科赛3道面试题
题目一:获得最大子数组:
问题描述:
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。
样例:
给出数组[-2,2,-3,4,-1,2,1,-5,3],符合要求的子数组为[4,-1,2,1],其最大和为6。
def max_sub(arr):max_sub_list = []for i in range(len(arr)):if i == 0:sub_num = arr[i]elif sub_num + arr[i] > arr[i]:max_sub_list.append(sub_num) #把每一步计算出来的求和值加入max_sub_list中sub_num = sub_num + arr[i]else:max_sub_list.append(sub_num)sub_num = arr[i]# print(sub_num)# print(max_sub_list)return max(max_sub_list)# arr = [-2, 2, -3, 4, -1, 2, 1, -5, 3]
# print(max_sub(arr))
题目二:找零钱
问题描述:
有三种硬币 quarter(25), dime(10), pennies(1),求给定一个零钱,构成硬币的最小值。
样例: 31=>4(3 dime + 1 penny)
'''
一、分析:就是给出一个数字,要用最少的硬币数量来满足
比如31,最少的硬币数量是4,就是3个dime+1个pennies
二、解题思路:
由大到小进行除法,取整数部分,然后再进行下一步
以31为例,分2步走
1、31/25得1余6,6/10得0余6,6/1得6余0,总和为7
2、31/10得3余1,1/1得1余0,总和为4
再将上面3个数量比大小
三、进一步优化思路:
1、如果该数<10的话,肯定只有pennied可以用;
2、如果该数>=10、<25的话,肯定是dime和pennies;
'''def min_coins(change):quarter, dime, pennies = 25, 10, 1if change < 10:return changeelif 10 <= change < 25:dime_num, dime_mod = divmod(change, dime)return dime_num + dime_modelif change == 25:return 1else:quarter_num, quarter_mod = divmod(change, quarter)dime_num, dime_mod = divmod(quarter_mod, dime)dime_num_2, dime_mod_2 = divmod(change, dime)return min(quarter_num + dime_num + dime_mod, dime_num_2 + dime_mod_2)# print(min_coins(99))
题目三:矩阵相交
问题描述:
给定两个矩阵的左下角和右上角,计算他们是否有重叠。
样例: ((2,1),(5,5)), ((3,3),(5,7)) => True
'''
分析:给定左下角和右上角后,因为是矩阵,所以实际图形就可以画出来了
而判定是否有重叠,其实也就是看一个矩阵是否有边界点在另一个矩阵内
解题思路:
1、判断是否点在另一个矩阵内,只需要把该点的横坐标与另一个矩阵的纵坐标上下限、
该点的纵坐标与另一个矩阵的横坐标上下限分别进行比较即可,只要2个条件都满足就是;
2、如果点在边界上,只需要判断面积是否>0,大于0的就是相交
'''def overlay(a, b):'''a[0][0]:a的横坐标下限,a[1][0]:a的横坐标上限a[0][1]:a的纵坐标下限,a[1][1]:a的纵坐标上限b同理'''a_x_min, a_x_max, a_y_min, a_y_max = a[0][0], a[1][0], a[0][1], a[1][1]b_x_min, b_x_max, b_y_min, b_y_max = b[0][0], b[1][0], b[0][1], b[1][1]if a_x_min <= b_x_min <= a_x_max and a_y_min <= b_y_min <= a_y_max:intersect_area = (min(b_x_max, a_x_max) - b_x_min) * (min(b_y_max, a_y_max) - b_y_min)elif b_x_min <= a_x_min <= b_x_max and b_y_min <= a_y_min <= b_y_max:intersect_area = (min(a_x_max, b_x_max) - a_x_min) * (min(a_y_max, b_y_max) - a_y_min)else:intersect_area = 0return intersect_areaprint(overlay(((2, 1), (5, 5)),((3, 5), (7, 7))))
# print(overlay(((2, 1), (5, 5)),
# ((3, 3), (5, 7))))
Python:科赛3道面试题相关推荐
- Python 常见的 170 道面试题全解析:2022 版
Python 常见的 170 道面试题全解析:2019 版 语言特性 1.谈谈对 Python 和其他语言的区别 答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第 ...
- python福音,170道面试题,从基础到框架
基础篇 1. 为什么学习 Python Python 语言简单易懂,上手容易,随着 AI 风潮,越来越火 2. 解释型和编译型语言的区别 编译型语言:把做好的源程序全部编译成二进制的可运行程序.然后, ...
- 2020全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及参考解答
2020全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及参考解答 简介 赛题构成 代码提交说明 成绩评定 2020真题 1-1 数字与相邻的前.后数字之和可以被4整除 题目 个人对 ...
- python基础知识面试题-深入解答关于Python的11道基本面试题
前言 本文给大家深入的解答了关于Python的11道基本面试题,通过这些面试题大家能对python进一步的了解和学习,下面话不多说,来看看详细的介绍吧. 一.单引号,双引号,三引号的区别 分别阐述3种 ...
- Python必会的12道面试题,看看你会几题?
今天小编为大家收集了一些Python的面试题,最近好多小伙伴给我留言说在学习Python,希望可以多发一些Python的文章.小编非常欣慰有这么多好学的小伙伴,那大家加油,把Python学好,每天都进 ...
- 达内python培训6,达内北京IT培训班:Python就业6道面试题分享!
Python学到什么程度能就业?先答对这6道面试题再说!下面和达内北京IT培训班一起来看看! 基础知识 1.列出5个常用Python标准库? import os import sys import r ...
- 武汉光迅科技22校招笔试题(武汉邮科院控股国企上市大厂Python的txt文本处理笔试题)
武汉光迅科技22校招笔试题(武汉邮科院控股国企上市大厂Python的txt文本处理笔试题) 资源: https://download.csdn.net/download/weixin_53403301 ...
- Python 全栈工程师必备面试题 300 道(2020 版)
2020元旦巨献,面试升级必备!献给正在学习Python的同学! Python 全栈工程师必备面试题 300 道(2020 版) Python 面试不仅需要掌握 Python 基础知识和高级语法,还会 ...
- python数据挖掘面试题_数据挖掘150道笔试题
作者:白宁超 2016年10月16日13:44:06 摘要:正值找工作之际,数据挖掘150道面试题涵盖很多基础知识点,如果你针对求职提前针对性准备,可以以此为为参照检查自己水平,如果你不为求职,也可以 ...
- Java每天5道面试题,跟我走,offer有!(八)
2019独角兽企业重金招聘Python工程师标准>>> 76.XML技术的作用? XML技术用于数据存储. 信息配置. 数据交换三方面. 可以将数据存储在XML中, 通过节点. 元素 ...
最新文章
- python自带的shell是什么-python的shell是什么
- oracle建库及plsql建表空间的用法
- 云原生的新思考,为什么容器已经无处不在了
- Linux下删除mysql实例,linux下完全删除mysql
- oracle中update锁记录,oracle进行update时对行加锁的测试
- 解决使用PowerShell执行命令出现“因为在此系统上禁止运行脚本”的问题
- Cocos2dx 链接Socket服务器
- 编程基本功:找出BUG的特殊性,再确认BUG是否系统导致的
- 工业镜头、相机的结构、参数解释及选型指南
- waiter.OnGreet(Tom) Delegate event
- Spring Security OAuth2实现简单的密钥轮换及配置资源服务器JWK缓存
- iPhone麦田守望者》
- 蓝墨云班课网页版下载资源文件
- MacOS查找各Python版本的路径
- 安装虚拟机(VMware)保姆级教程(附安装包)
- U盘制作启动盘后只显示容量4M的问题解决
- 天干地支 工具类java_java日期工具类DateUtil-续二
- Linux的sz和rz命令讲解
- VLSI数字集成电路设计——组合逻辑门(上)
- R语言-股票数据库(1)-股票上市日期