![](https://img-blog.csdnimg.cn/20190831012722319.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
各种编程题
ShawDa
Github:https://github.com/ShawDa
展开
-
编程题:找最外层的坐标点
牛客上的一道编程题P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。输入描述:第一行输入点集的个数 N, 接下来 N 行,每行两个数字代表点的 ...原创 2019-04-11 17:22:58 · 2313 阅读 · 0 评论 -
编程题:最长公共子序列
也就是LCS问题,常规的动态规划题目,状态转移矩阵见下图:代码呼之欲出:class Solution: def lsc(self, a, b): len_a, len_b = len(a), len(b) # dp[i][j]表示a的前i个数和b的前j个数构成的最长公共子串长度 dp = [[0] * (len_b + 1) for _...原创 2019-04-18 10:36:19 · 447 阅读 · 0 评论 -
Google面试题:人和自行车匹配
题目参考这里,也是leetcode-cn举办的编程大赛的一道题,只想到了暴力法解决,超时了:# -*- coding:utf-8 -*-__author__ = 'ShawDa'class Solution: def assignBikes(self, workers, bikes): res, dis_dict, index = [0]*len(workers),...原创 2019-04-14 21:52:51 · 627 阅读 · 0 评论 -
字节跳动0414笔试编程题
字节跳动0414笔试编程题第一题和leetcode994. 腐烂的橘子一样的,AC解答:# -*- coding:utf-8 -*-__author__ = 'ShawDa'def get_ret(res): x, y, ret = len(res), len(res[0]), 0 locs, stack = [[-1, 0], [0, -1], [0, 1], [1, 0]], [] ...原创 2019-04-14 21:49:55 · 1047 阅读 · 0 评论 -
编程题:过河问题
参考这个动态规划-小朋友过桥问题。原创 2019-04-17 14:01:15 · 1798 阅读 · 0 评论 -
编程题:毕业旅行问题
也就是旅行商(TSP)问题,有很多解决方法,这里就介绍一种:动态规划,参考干货|十分钟教你用动态规划算法解Travelling Salesman Problem(TSP)问题,附代码……。最重要的是找到状态转移方程,是这个:从某一点出发,经过V‘+{i}中的所有点到达i(注意i是在V’中的)的最短距离是[经过V‘中所有点最后到达某一点k的最短距离加上k到i的距离]的最小值,Python代码...原创 2019-04-16 19:52:15 · 3115 阅读 · 0 评论 -
概率生成器
用一个[1 2 3 4 5]的随机生成器生成一个[1 2 3 4 5 6 7]的随机生成器这种题目的通解就是random2 = (random1-1)*len(random1)+random1,这样生成等概率的数,然后去掉后几种情况,构成len(random2)的倍数。上面的数是1-25这25个数,那就取1-21这21个数就好。...原创 2019-04-20 22:05:48 · 2774 阅读 · 0 评论 -
编程题:区间中的最小数 * 区间所有数的和最大
给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中经过如下计算的值最大的一个:区间中的最小数 * 区间所有数的和最后程序输出经过计算后的最大值即可,不需要输出具体的区间。如给定序列 [6 2 1]则根据上述公式, 可得到所有可以选定各个区间的计算值:[6] = 6 * 6 = 36;[2] = 2 * 2 = 4;[1] = 1 * 1 = 1;[6,2] = 2 * ...原创 2019-04-12 17:37:18 · 1301 阅读 · 0 评论 -
编程题:最大乘积
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)输入描述:无序整数数组A[n]输出描述:满足条件的最大乘积示例1输入3 4 1 2输出24找到数组中最大a,第二大b,第三大c,最小d和第二小e的数即可,结果只能是abc或者ade:n = int(input())data = list(map(int...原创 2019-04-12 10:54:09 · 897 阅读 · 0 评论 -
编程题:字符串的最长重复子串
https://my.oschina.net/henryking/blog/743509原创 2019-06-03 16:39:32 · 1297 阅读 · 0 评论