一亩三分地

 找回密码 注册账号

扫描二维码登录本站


Salarytics=Salary Analytics
查询工资数据
系统自动计算每年收入

科技公司如何
用数据分析驱动产品开发
coupon code 250off 立减$250

深入浅出AB Test
从入门到精通
coupon code 250off 立减$250
游戏初创公司招聘工程师、UIUX Designer和游戏策划
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
把贵司信息放这里
查看: 606|回复: 4
收起左侧

[数组] 请教各位大神,这道题到底咋做啊....

[复制链接] |试试Instant~ |数组, 刷题
我的人缘0

分享帖子到朋友圈
Helloyc | 显示全部楼层 |阅读模式
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   0% (0)
 
 
0% (0)    👎
2小米
本帖最后由 Helloyc 于 2019-12-5 04:29 编辑

在准备oa,看到这道题(图片已附件)...比较懵。请教各位~感谢!

我大米少的可怜。见谅
附件: 您需要 登录 才可以下载或查看,没有帐号?注册账号

最佳答案

查看完整内容

vector<int> endnodes = [a0, a1, ..., an-1, an] 观察那些元素多走了: 1 从开头走到最后元素 a0 走到 an 每个元素count++ 2 从a1 到an-1 每个元素count++ 然后遍历unorderedmap 求最大 O(n) int findendnodes(vector<int>& endnodes) { unorderedmap<int> m; int n = endnodes.size(); int maxnode = 0; int max = 0; for(int i = 0; i< n; i++) { if (i == 0 || i == n -1) { m[endnodes]++; } ...

上一篇:分享一个能免费看leetcode加锁题和公司分类的网站
下一篇:面试的时候 有道题目 不会做 可以直接跟面试官换一道吗
我的人缘0
本楼:   0% (0)
 
 
0% (0)  
全局: 👍   100% (5)
 
 
0% (0)    👎
vector&lt;int&gt; endnodes = [a0, a1, ..., an-1, an]
观察那些元素多走了:
1 从开头走到最后元素 a0 走到 an 每个元素count++
2 从a1 到an-1 每个元素count++

然后遍历unorderedmap  求最大
O(n)
int findendnodes(vector&lt;int&gt;& endnodes)
{
unorderedmap&lt;int&gt; m;
int n = endnodes.size();
int maxnode = 0;
int max = 0;
for(int i = 0; i&lt; n; i++)
{
  if (i == 0 || i == n -1)
  {
   m[endnodes]++;
  }
  else
  {
      m[endnodes]+=2;
  }
}
int v = endnodes[0];
int i = 0;
while(v != endnodes[n-1])
{
  i++;
  m[v]++;
  v=i%n;
}

for (auto& kv : m)
{
  if (kv-&gt;second &gt; max )
  {
   maxnode = kv.first;
   max = kv.second;
  }
  else if {kv-&gt;second == max && maxnode &gt; kv.first}
  {
   maxnode = kv.first;
  }
}
return maxnode;
}

补充内容 (2019-12-4 17:01):
汗 系统把 endnodes 替换成 endnodes了

补充内容 (2019-12-4 17:03):
[  i ]  被系统drop了

补充内容 (2019-12-4 17:07):
if (i == 0 || i == n -1)
  {
   m[endnodes]++;
  }

应该删掉 和后面重复计算了
回复

使用道具 举报

我的人缘0
 楼主| Helloyc 2019-12-5 21:01:47 | 显示全部楼层
本楼:   0% (0)
 
 
0% (0)  
全局: 👍   0% (0)
 
 
0% (0)    👎
lyronly 发表于 2019-12-5 04:27
vector&lt;int&gt; endnodes = [a0, a1, ..., an-1, an]
观察那些元素多走了:
1 从开头走到最后元素 a0 走到 ...

谢谢!
回复

使用道具 举报

我的人缘0
anhpp 2019-12-6 09:02:07 | 显示全部楼层
本楼:   0% (0)
 
 
0% (0)  
全局: 👍   100% (5)
 
 
0% (0)    👎
lyronly 发表于 2019-12-5 04:27
vector&lt;int&gt; endnodes = [a0, a1, ..., an-1, an]
观察那些元素多走了:
1 从开头走到最后元素 a0 走到 ...

while 部分是啥意思呢
回复

使用道具 举报

我的人缘0
anhpp 2019-12-6 09:04:13 | 显示全部楼层
本楼:   0% (0)
 
 
0% (0)  
全局: 👍   100% (5)
 
 
0% (0)    👎
第一想法是把 i > j的 (i,j) 拆成 (1,i) 和 (j, n - 1) 然后标记每一段的起点 终点,point 从1过到n走一遍,遇到几个起点加几,几个终点 回头减几
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

GMT+8, 2020-1-18 08:02

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表