华为OD机考题分享
第一题:
有个N个正整数组成的序列,给定整数sum,
求长度最长的连续子序列,使他们的和等于sum
返回子序列长度,如果没有满足要求的序列,返回-1
这道题想到了leetcode78的那道组合的位扩展写法,
第二题:
乱序数组,删除所有重复元素 使得每个元素只出现一次,
并且按照出现的次数的由高到低进行排序
相同出现次数,按照第一次出现的顺序进行先后排序(要求稳定)
这道题写得比较恶心,挺暴力了,用了三个哈希字典,分别映射:数字——出现次数,出现次数——[数字列表],数字——第一次出现的位置
第三题:
有N个网络结点,和M条路径,给一个时延表,表的每个元素为[源节点,目的结点,路径长度]
然后提供一个要求的源节点,和目的结点,求出源节点到目的结点的最短路径
这个题用的Dijkstra算法,之前没做过这种题,好在考试时间比较富裕,现场凭着考研时稀薄的记忆推了一下,没AC,有些边界问题没考虑到,但是也通过大部分了。
#笔试题目##华为#