1.城市修建
有一个城市需要修建,给你N个民居的坐标X,Y,问把这么多民居全都包进城市的话,城市所需最小面积是多少(注意,城市为平行于坐标轴的正方形)

输入描述:
第一行为N,表示民居数目(2≤N≤1000)

输出描述:
城市所需最小面积
示例1
输入
2
0 0
2 2
输出
4
示例2
输入
2
0 0
0 3
输出
9

import math
N=int(input())
ordit=[]
i=0
while i<N:temp=input()temp1=temp.split(" ")for ii in range(len(temp1)):temp1[ii]=int(temp1[ii])ordit.append(temp1)i+=1tampx=[]
tampy=[]
for  j in range(len(ordit)):tamp=ordit[j]tampx.append(tamp[0])tampy.append(tamp[1])
tampx1=min(tampx)
tampx2=max(tampx)
tampy1=min(tampy)
tampy2=max(tampy)
#tampx.sort()
#tampy.sort()
d=max(tampx2-tampx1,tampy2-tampy1)
result=(d)**2
print(result)

2.圈地运动
圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形~

小明喜欢圈地运动,于是他需要去小红店里面买一些木棍,期望圈出一块地来。小红想挑战一下小明,所以给小明设置了一些障碍。障碍分别是:

1.如果小明要买第i块木棍的话,他就必须把前i-1块木棍都买下来。

2.买了的木棍都必须用在圈地运动中。

那么请问小明最少买多少根木棍,才能使得木棍围成的图形是个面积大于0多边形呢?

输入描述:
第一行一个数n,表示木棍个数。
第二行n个数,第i个数表示第i个木棍的长度ai
1<=n<=10000
1<=ai<=10000

输出描述:
输出一个数,表示最少需要的木棍个数,如果无解输出-1
示例1
输入
3
6 8 10
输出
3
说明
用三根6,8,10的木棍可以组成一个直角三角形的图形。

# 思路是n-1边的和大于最长边,就能组成封闭多边形;
N = int(input())
flag=1
temp = input().split(" ")
temp = list(map(int, temp))
if N < 3:print(-1)
else:for length in range(3,N+1):tamp=temp[0:length]tamp.sort()if sum(tamp[0:-1])>tamp[-1]:flag=0print(length)exit()else:flag=-1if flag == -1:print(-1)

3.题目描述

小明在课上学习了进制转化。现在他有q个询问,每次询问想问你在[l,r]区间内,k进制表示中,k-1的数量最多的是哪个数。比如当k=2时,9的二进制数就是1001,那么它就有2个1。

输入

测试用例包含多组,每一行一个q,表示有q组询问。接下来q行,每行三个数k,l,r,分别表示进制数以及查询的范围。

满足1<=q<=100000,2<=k<=16,1<=l<=r<=10^16。

输出

对于每组询问,输出答案,如果有多个答案,输出最小的。

样例输入

1

8 1 100

样例输出

63

##超时。case通过率0
def f(n,x):# n为待转换的十进制数,x为进制,取值为2-16a=[0,1,2,3,4,5,6,7,8,9,'A','b','C','D','E','F']b, c = [], []while True:s=n//x  # 商y=n%x  # 余数b = b+[y]if s==0:breakn=sb.reverse()for i in b:c.append(a[i])return cq = int(input())
temp = []
i=0
while i < q:temp.append( list(map(int, (input().split(" ")))))i += 1
for j in range(len(temp)):tamp1 = []temp1 = temp[j]nums = temp1[0]l = temp1[1]r = temp1[2]for ii in range(l,r+1):tamp = f(ii,nums)tamp1.append(tamp.count(nums-1))#print("*************%s" % tamp1)max2 = tamp1.index(max(tamp1))d = list(range(l, r+1))print(d[max2])del temp1, nums, l, r, ii, tamp, max2, d

这个不知道为啥通不过,测试例子都对着呢。郁闷(# ̄~ ̄#)
4.看花题
小明有一个花园,花园里面一共有m朵花,对于每一朵花,都是不一样的,小明用1~m中的一个整数表示每一朵花。

他很喜欢去看这些花,有一天他看了n次,并将n次他看花的种类是什么按照时间顺序记录下来。

记录用a[i]表示,表示第i次他看了a[i]这朵花。

小红很好奇,她有Q个问题,问[l,r]的时间内,小明一共看了多少朵不同的花儿,小明因为在忙着欣赏他的花儿,所以想请你帮他回答这些问题。
输入描述:
输入两个数n,m;(1<=n<=2000,1<=m<=100);分别表示n次看花,m表示一共有m朵花儿。

接下来输入n个数a[1]~a[n],a[i]表示第i次,小明看的花的种类;

输入一个数Q(1<=Q<=1000000);表示小红的问题数量。

输入Q行 每行两个数l,r(1<=l<=r<=n);表示小红想知道在第l次到第r次,小明一共看了多少不同的花儿。

输出描述:
一共Q行

每一行输出一个数 表示小明在[l,r]的时间内看了多少种花。

输入例子1:
5 3
1 2 3 2 2
3
1 4
2 4
1 5

输出例子1:
3
2
3

#内存超限:您的程序使用了超过限制的内存。。case通过率为86.67%
input1=input().split()
#n = int(input1[0])
#m = int(input1[1])
a = list(map(int, input().split()))
Q = int(input())
temp=[]
i=0
while i <Q:temp.append(list(map(int,input().split())))i+= 1
for ii in range(len(temp)):l = temp[ii][0]r = temp[ii][1]dicty = set(a[l-1:r])print(len(dicty))

5.Array
小红有两个长度为n的排列A和B。每个排列由[1,n]数组成,且里面的数字都是不同的。

现在要找到一个新的序列C,要求这个新序列中任意两个位置(i,j)满足:

如果在A数组中C[i]这个数在C[j]的后面,那么在B数组中需要C[i]这个数在C[j]的前面。

请问C序列的长度最长为多少呢?

输入描述:
第一行一个整数,表示N。

第二行N个整数,表示A序列。

第三行N个整数,表示B序列。

满足:N<=50000

输出描述:
输出最大的长度

输入例子1:
5
1 2 4 3 5
5 2 3 4 1

输出例子1:
4

例子说明1:
最长的C为1,3,4,5

#答案错误:您提交的程序没有通过所有的测试用例  ,case通过率为10.00%
import copy
N = int(input())
A = list(map(int, input().split(" ")))
B=list(map(int, input().split(" ")))
c1 = copy.deepcopy(A)
c2 = copy.deepcopy(A)
c, cc = [], []
for i in range(N-1,0,-1):for j in range(i - 1, -1, -1):if A[i] in c or A[j] in c:breakelif B.index(A[j]) <= B.index(A[i]):c1.remove(A[j])c.append(A[j])
for ii in range(N-1,0,-1):for jj in range(ii - 1, -1, -1):if A[ii] in cc or A[jj] in cc:breakelif B.index(A[jj]) <= B.index(A[ii]):c2.remove(A[ii])cc.append(A[ii])breaknlength = max(len(c1), len(c2))
print(nlength)

6.魔法排列
众所周知,集合{1 2 3 … N}有N!种不同的排列,假设第i个排列为Pi且Pi,j是该排列的第j个数。将N个点放置在x轴上,第i个点的坐标为xi且所有点的坐标两两不同。对于每个排列(以Pi为例),可以将其视为对上述N个点的一种遍历顺序,即从第Pi,1个点出发,沿直线距离到达第Pi,2个点,再沿直线距离到达第Pi,3个点,以此类推,最后到达第Pi,N个点,将该路线的总长度定义为L(Pi),那么所有N!种路线的总长度之和是多少,即L(P1)+L(P2)+L(P3)+…+L(PN!)的结果是多少?

输入描述:
第一行包含一个整数N,1≤N≤105。

第二行包含N个空格隔开的整数x1到xN,0≤x1<x2<x3<…<xN≤109。

输出描述:
输出L(P1)+L(P2)+L(P3)+…+L(PN!)对109+7取模后的结果。

输入例子1:
3
0 1 3

输出例子1:
24

例子说明1:
P1={1 2 3},P2={1 3 2},P3={2 1 3},P4={2 3 1},P5={3 1 2},P6={3 2 1};

L(P1)=3,L(P2)=5,L(P3)=4,L(P4)=5,L(P5)=4,L(P6)=3。
这里先粘贴一个别人的例子,等我用python实现了再补充。。

/* 思路* 对于N个数中任意两个数a,b(a!=b)考虑先后顺序 , 有(a,b)及(b,a)两种情况* 对于其中的(a,b)情况有,将其视为一个整体,插入剩下的(N-2)个数中,有(N-1)种方法,*                    进而推出对N!个序列有(N-1)*((N-2)!)=(N-1)!种情况。* 同理对(b,a)也有(N-1)!种情况。* 一共有C(N,2)对数对,对于(a,b)及(b,a)移动代价相同,所以只需求出C(N,2)对数的代价P* 最后  P * 2 * ((N-1)!) 即为最终解* 当然考虑到 对(10^9+7) 取余* */
import java.util.Arrays;
import java.util.Scanner;public class Test6i {public static void main(String[] args) {Long yv = (long) (Math.pow(10, 9)+7);Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] number = new int[n];for(int i=0;i<n;i++) {number[i] = sc.nextInt();}Arrays.sort(number);Long sum = 0L;Long[] sumList = new Long[n];for(int i=0;i<n;i++) {        if(i==0) {sumList[i] = 0l;}else {sumList[i] = ((long)i*(long)(number[i]-number[i-1])+sumList[i-1]+yv)%yv;                }            }for(int i=0;i<n;i++) {sum = (sum + sumList[i] + yv)% yv;        }Long muti = 2L;for(int j=1;j<n;j++) {muti = (muti * j + yv)%yv;}sum = sum * muti;sum = (sum+yv) % yv;System.out.println(sum);}
}

还是太菜了 ,继续努力加油刷题吧! 也顺带记录一下自己的解题过程。有错误地方还请不吝指出。欢迎大家一起讨论。

360公司2019校招笔试编程题合集答案——python版本相关推荐

  1. 【牛客网】网易2017内推笔试编程题合集(二)

    1.[*][编程题] 混合颜料 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料.为了让问题简单,我们用正整数表示不同颜色的颜料.你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买 ...

  2. 哔哩哔哩 2019秋招编程题合集

    1/14 [编程题]扭蛋机 #include<bits/stdc++.h> using namespace std; #define line cout << "-- ...

  3. 多多的魔术盒子(拼多多2020校招部分编程题合集之第一题)

    多多鸡有N个魔术盒子(编号1-N),其中编号为i的盒子里有i个球. 多多鸡让皮皮虾每次选择一个数字X(1 <= X <= N),多多鸡就会把球数量大于等于X个的盒子里的球减少X个. 通过观 ...

  4. 魔法币 java_网易2018校招笔试编程题-魔法币 java实现

    魔法币 原题 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1:如果投 ...

  5. 2012年奇虎360校园招聘实习生笔试编程题

    2012年奇虎360校园招聘实习生笔试编程题 1.  自己实现库函数 int atoi(const char* str);  注意两点:(1). 字符串中,符号位的处理. (2).字符串中,出现非数字 ...

  6. system verilog编程题_拼多多2020校招部分算法编程题合集

    拼多多2020校招部分算法编程题2道,多多的魔术盒子和多多的排列函数 其实根据他的匹配职位我们可以看到,这5道题的难度还是并不高,只是作为一个初步筛选,我这边选择了前两道跟大家分享 [编程题一] 多多 ...

  7. 搜狗2016年校招笔试编程题记录+总结

    不同的职位题目应该不一样,我遇到的2道题,其一是搜狗问答中的作弊判断,其二是矩阵计算. 1. 搜狗问答作弊判断 简单来说,就是存在作弊刷积分的情况,所以需要判断哪些人作弊,判断遵循下面2个原则: (A ...

  8. 华为2020校招笔试编程题 看这篇就够了(上)

    背景 近日一位在华为的师兄整理了一份内部的提纲给我们,想着以后肯定不会去华为,于是乎分享给大家,看看菊花厂今年的笔试题目是什么样子的. 编程题范围 这好像来自一个华为内部的文档,据说今年华为内部也在进 ...

  9. 奇安信2021年校招笔试编程题

    < 2020年9月12日奇安信笔试编程第一题 > <java实现获取数组中的连续子数组> 1. 题目信息 2. 参数要求 3. 解题思路 该题获取糖果可以分解为两个部分: (1 ...

  10. 网易2020校招笔试编程题回顾

    把今天的记忆里面的笔试题的情况梳理一下,投递的是算法工程师: 题型总共分为选择题10*1  编程题10.20.20.30  问答题5*2 编程题: 1.倒数排序:给你一个数n,以及1-n的一个排列,让 ...

最新文章

  1. 基于TPS28225功率MOS半桥电路测试
  2. RDB和AOF的持久化配置
  3. C# 获取USB设备信息
  4. MyBatis配置项--properties
  5. make时候说找不到makefile_找不到答案的时候,就去看一看这个世界
  6. java国际化——资源包
  7. 使用比较器的nulls对具有null值的列表进行排序
  8. oc 实例变量可见度、方法
  9. Java并发篇_乐观锁与悲观锁
  10. 参考优秀案例,让你设计的网页更惊艳?
  11. 全球最急需的10项IT技术
  12. torch repeate 的用法
  13. 「新手指南」如何在Mac上格式化U盘和移动硬盘?
  14. 平面几何----斜射影定理的应用
  15. 四月送书活动获奖名单
  16. 利用命令行实现图片转换等操作--ImageMagick
  17. Node 的单元测试--jasmine
  18. python 入门书籍-入门python有什么好的书籍推荐?
  19. 事件坐标:screenX,clientX,pageX,offsetX的区别
  20. Diango:Django基础

热门文章

  1. System32、SysWOW64与SysNative文件夹
  2. 【历史上的今天】10 月 23 日:ipod 问世;谷歌推出 CSE 搜索服务;人机交互领域先驱诞生
  3. 2006年10大变态站名网站排名
  4. 计算机应用基础——计算机软件(二)
  5. 一级计算机电子表格人,计算机一级电子表格.doc
  6. 乔纳森 刘易斯 oracle,阿泰刘易斯都是幻想 专家点火箭引援之真命天子
  7. 【JAVA】-- 黄金矿工小游戏(一)(实现思路+每步代码)
  8. 64位CPU,64位操作系统,和64位应用程序三者之间的关系
  9. 【TAGE】分支预测
  10. 蓬莱小课:HR问“你的职业规划是什么”,这样回答90%不出错