(Google)谷歌笔试算法题:要求相邻的两个数都不小于或者不大于其本身的排序
如题,要求相邻的两个数都不小于或者不大于其本身的排序, 那么也就是说每个数字必须同时大于等于或者小于等于它左右两边的数字,例如 3>=2<=6,那么这里2就是同时同于等于3且小于等于6,那么如果多来点数据就是 3>=2<=6>=5<=10>=2<=6
题目描述可能本身比较模糊,我们举例来看:
一组数据,比如已经排序好了(排序好的数据看着比较方便)
1,2,3,4,5,6,7
我们现在需要变成每个数字都大于等于或者小于等于它相邻的两个数
1 <= 3 >= 2 <= 5> =4 < =7 >= 6
现在排序的方法有很多,我们可以先求出中位数,然后开始补,也可以先排序,然后倒数第二和倒数第一换位等等,但是这些都是需要先排序,而这里我们用一种一次排好的方法,即O(n),
上图:
看清楚了吗?我们这里一次排序,直接写入列表,因为所有数字他不是 不小于 就是 不大于
先把1 写入,
然后写入2,
然后写入3,这时候不满足条件了交换2和3的位置
然后写入4,
然后写入5,交换
写入6........
这里因为我用的是已经排好序的例子,其实大家可以想一下,乱序的也无所谓,只要满足条件,直接排序,没有影响
上代码:
#!D:/workplace/python
# -*- coding: utf-8 -*-
# @File : 大小大小排序.py
# @Author: WangYe
# @Date : 2019/5/21
# @Software: PyCharmin_data = input()
data = in_data.split(',')
out = [] #输出列表def compare(num1,num2): #比较函数if num1 > num2:return 0if num1 < num2:return 1if num1 == num2:return 2for k in range(len(data)):if (k - 1) < 0: #存入首位out.append(int(data[0]))else:num1 = int(data[k-1])num2 = int(data[k])if (k%2) == 0: #区分基数还是偶数,也其实就是为了相邻的符号判断不同而已if compare(num1,num2) == 1:out.append(num2)out[k-1],out[k] = out[k],out[k-1] #元素交换else:out.append(num2)else:if compare(num1, num2) == 0:out.append(num2)out[k - 1], out[k] = out[k], out[k - 1] # 元素交换else:out.append(num2)print(out)
截图:
或者乱序的
再来几个或者等于号的
ok,大功告成
(Google)谷歌笔试算法题:要求相邻的两个数都不小于或者不大于其本身的排序相关推荐
- Re: 一著名软件公司的java笔试算法题!
主 题: Re: 一著名软件公司的java笔试算法题! 作 者: szlhj () 等 级: 信 誉 值: 95 所属论坛: Java J2SE / 基础类 问题点数: 20 回复 ...
- LeetCode 547. Friend Circles--Python解法--笔试算法题
题目地址:Friend Circles - LeetCode There are N students in a class. Some of them are friends, while some ...
- 【实习笔试面试题】2013网易互联网实习笔试算法题-找出最大连续自然数个数
找出最大连续自然数个数 搜集者:江南烟雨 E-Mail:xiajunhust@gmail.com 本题为网易互联网暑期实习生笔试算法题. 凭记忆记录下来的题目,如违反网易版权请邮件联系,本人会删除. ...
- 秋招笔试算法题——电容充电
秋招笔试算法题--电容充电 牛客网<笔试真题精选2019> 字节跳动2018秋招笔试题4 [题目描述]有一台用电容组成的计算器,其中每个电容组件都有一个最大容量值(正整数). 对于单个电容 ...
- Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)
Algorithm:C+语言实现之数组相关算法(和为定值的两个数.和为定值的m个数.荷兰国旗.长度为2n的洗牌算法.任意长度数组的洗牌算法) 目录 数组 1.寻找和为定值的两个数 2.和为定值的m个数 ...
- LeetCode 221. Maximal Square----动态规划--谷歌面试算法题--Python解法
题目地址:Maximal Square - LeetCode Given a 2D binary matrix filled with 0's and 1's, find the largest sq ...
- 乐视笔试算法题美团算法笔试题
今天参加了乐视的校招笔试题有一道以前很熟悉的一道题记录一下 备注:今天乐视笔试好多图的选择题和线程间同步的方式一道选择题(上次总结过) 给定一个无序的整数数组,怎么找到第一个大于0,并且不在此数组的整 ...
- 目录:名企笔试 + 算法题
名企笔试:美团2016招聘笔试(股票交易日) 名企笔试:搜狐2016招聘笔试题(扎金花) 名企笔试:凤凰网2015招聘(二分查找) 名企笔试:4399游戏校招笔试题(快速排序) 名企笔试:蘑菇街201 ...
- LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题
题目地址:Reverse Linked List II - LeetCode Reverse a linked list from position m to n. Do it in one-pass ...
最新文章
- 软银准备以超400亿美元向英伟达出售Arm,交易最快下周达成
- java 串口 rxtx_【Java】基于RXTX的Java串口通信
- 6. Magento2 --- 创建主题
- 史上最详细的测试用例的设计方法及案例
- solaris 命令大全
- linux下的timerfd机制
- Ubuntu网卡驱动安装
- css 实现一个尖角_如何用CSS实现一个带尖角的框?
- Flutter Clipboard 粘贴板使用
- 如何使用你的 ETH 赚取更多 ETH?这 5 大策略了解一下
- 苹果设备验证是否正品
- SPI和IIC异同点
- 好消息,高清版谷歌卫星地图终于可以正常使用了
- 英文学习——100个经典句型
- 如何开通企业付款到零钱||小程序红包功能
- Selenium UnreachableBrowserException异常处理方案
- #数据结构与算法 第一小题 学生成绩档案管理系统
- js读取本地Excel内容
- 计算机科学技术专业解析,计算机科学与技术专业怎么样 主要学什
- 另类烹饪 用电吹风做出脆皮烤鸡!本文来自:可可英语
热门文章
- 如何在Android上管理文件和使用文件系统
- dnf剑魂buff等级上限_DNF:半年前没人看得上,如今被开发成T0,这神话终于翻身了...
- IDEA在push出现Pushed master to new branch origin/master错误
- 什么是计算机集中管理,什么如何的是集中管理和集中管理集群创建?
- protel dxp PCB使用技巧(摘)
- 不同进制之间的转换的各种方法
- c语言中常用命名空间,C语言命名空间详解.doc
- 渣基础:比照Hawstein学Cracking the coding interview(3)
- 如何高效阅读技术论文
- 软件园三区VR虚拟漫游实训项目规划