华为Python 算法面试题
华为算法面试题
"""
算法题:
提供一个序列,完成对这个序列的分割。要求分割后的两个序列彼此差值最小
实现函数,返回两个序列
""" def func(i):
i.sort()
if not i:
return (([], [])) max_num = i[-1]
max_two_num = i[-2]
max_list, min_list = func(i[:-2])
max_list.append(max_two_num)
min_list.append(max_num) if sum(max_list) > sum(min_list):
return ((max_list, min_list))
else:
return ((min_list, max_list)) l = [1, 46, 3, 8, 6, 4561, 4642, 45, 8, 9, 155, 1784]
print(len(l))
l1, l2 = func(l)
print(l1, l2)
上面题目存在 问题必须要求 提供的序列是 偶数元素。
如果奇数元素,因为每次递归减少2个元素。
最后一个元素的时候,无法对第二个元素取值导致报错
因此如果题意改动,可以使用以下版本
"""
算法题:
提供一个序列,完成对这个序列的分割。要求分割后的两个序列彼此差值最小
实现函数,返回两个序列
""" def func(i):
if not i:
return ([], [])
elif len(i) == 2:
return (i[1:], i[0:])
elif len(i) == 1:
return (i[0:], [])
else:
max_num = i[-1] max_two_num = i[-2] max_list, min_list = func(i[:-2])
max_list.append(max_two_num)
min_list.append(max_num) if sum(max_list) > sum(min_list):
return (max_list, min_list)
return (min_list, max_list) # tests = [
# [1, 2, 3, 5, 6, 7, 8],
# [15446, 13, 165468, 113216, 1654613, 11, 132, 135416, 54],
# range(1, 10)] # for i in tests:
# i.sort()
# list_max, list_min = func(i) l = [1, 46, 3, 8, 6, 4654, 45, 456546, 1313, 1321, 8, 9, 155]
l.sort()
print(len(l))
l1, l2 = func(l)
print(l1, l2)
print(sum(l1), sum(l2))
13
[1, 3, 8, 45, 46, 1321, 456546] [6, 8, 9, 155, 1313, 4654]
457970 6145
华为Python 算法面试题的更多相关文章
- python 算法面试题
1.题目是:有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法. def StringSort(data): startIndex=0 endIndex=0 count ...
- Twitter算法面试题详解(Java实现)
最近在网上看到一道Twitter的算法面试题,网上已经有人给出了答案,不过可能有些人没太看明白(我也未验证是否正确),现在给出一个比较好理解的答案.先看一下题目. 图1 先看看图图1.可以将方块看做砖 ...
- 【转】Twitter算法面试题详解(Java实现)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://androidguy.blog.51cto.com/974126/1319659 ...
- Java算法面试题(史上最强、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
- 算法实践——Twitter算法面试题(积水问题)的线性时间解法
问题描述:在下图里我们有不同高度的挡板.这个图片由一个整数数组所代表,数组中每个数是墙的高度.下图可以表示为数组(2.5.1.2.3.4.7.2).假如开始下雨了,那么挡板之间的水坑能够装多少水(水足 ...
- 【BAT经典算法面试题系列】求和为n的连续正整数
马上就要到9月份了,意味着一年一度的秋招就要开始了,相信不论是正在实习的童鞋还是马上就要找工作的童鞋,BAT无疑是国内的"明星企业",是每个学计算机的小伙伴们心之向往的企业,但是呢 ...
- 常见的js算法面试题收集,es6实现
1.js 统计一个字符串出现频率最高的字母/数字 let str = 'asdfghjklaqwertyuiopiaia'; const strChar = str => { let strin ...
- 算法面试题:一个List<Student>,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点!
算法面试题:一个List,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点! 解题思路 这是群里某位小伙伴去面试碰到的面试题,从题目本身来看,面试官应该是要考察面试者对泛型 Lis ...
- LeetCode 算法面试题汇总
LeetCode 算法面试题汇总 算法面试题 https://leetcode-cn.com/problemset/algorithms/ https://leetcode-cn.com/proble ...
随机推荐
- AtCoder Beginner Contest 053
D - Card Eater Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement Snuke h ...
- OSS网页上传和断点续传(终结篇)
有了之前OSS网页上传和断点续传(OSS配置篇)和(STSToken篇),其万事俱备只欠东风啦,此终结篇即将展示OSS上传文件及断点续传的无限魅力... 网络卡顿.延迟能续传吗?能! 关了浏览器,还能 ...
- iOS Keychain,SSKeychain,使用 理解 原理
https://www.cnblogs.com/m4abcd/p/5242254.html Keychain 使用? ---为了实用最大化我觉得我应该直接先说使用! 当然是使用第三方库啦:sskeyc ...
- Docker -d : Running modprobe bridge nf_nat failed with message: exit status 1
nf_nat 是做什么用的 - DockOne.iohttp://dockone.io/question/1384 docker-py的配置与使用 - openxxs - 博客园http://www. ...
- js在微信、微博、QQ、Safari唤起App的解决方案
首先看下完整的流程: 简单说下universal link 在iOS9之前,唤起方式和现在安卓是一个的,都是使用scheme进行唤起,这种方式有个小问题,每次唤起,都会给个提示:是否打开xx应用,这样 ...
- 临时的ThisCall
// 获取当前定位 changeCity: function () { let that = this; that.locationClose(); Upj._changeCity().then((d ...
- day 7-18 mysql case when语句
概述: sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作. 首先,让我们看一下CASE的语法.在一般的SELECT中, ...
- Codeforces 1154F Shovels Shop
题目链接:http://codeforces.com/problemset/problem/1154/F 题目大意: 商店有n把铲子,欲购k把,现有m种优惠,每种优惠可使用多次,每种优惠(x, y)表 ...
- Python 中关于 round 函数的小坑
参考: http://www.runoob.com/w3cnote/python-round-func-note.html
- James 3.1服务器的安装与搭建
参考:1. ububtu下基于docker安装配置Apache James 3.1.0: https://blog.csdn.net/bonwei/article/details/83061372 2 ...