1:有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分你可以带走。如果无法找到则一个也无法带走。请帮助学者找出如何切分项链才能够拿到最多的宝石。

思路:参考别人的,这种题感觉比较烦,找到一个比较好的模板。主要注意点:1,包含一个abcde的串,想要最小,也就是重复的宝石最后出现的位置到现在搜索到的位置的长度,也就是字符最后出现的一个位置,先遍历找到包含五种宝石的最长子串,然后找到前面重复宝石最后出现的位置,两个位置之间就是最小长度。简单的最后出现字符查找的应用啊。2,循环的问题可以把字符串重复两次,就不用取模来判断这些了。可以包含所有情况。

链接:https://www.nowcoder.com/questionTerminal/321bf2986bde4d799735dc9b493e0065
来源:牛客网#include <iostream>
#include <string>
#include <vector>
#include <algorithm>bool judgeColor(int (&index)[5]) {for (int i = 0; i < sizeof(index) / sizeof(int); i++) {if (!index[i])return false;}return true;
}
int main() {using namespace std;string str;while (getline(cin, str)) {int len = str.size();str += str;int l = 0, r = 0;int length = len;int index[5] = { 0 };for (int i = 0; i < len * 2; i++) {if (str[i] - 'A' < 5) {index[str[i] - 'A']++;if (judgeColor(index)) {while (index[str[l] - 'A'] != 1) {if (str[l] - 'A' < 5) {index[str[l] - 'A']--;}l++;}if (length > r - l + 1) {length = r - l + 1;}}}r++;}cout << len - length << endl;}return 0;
}

2, 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了,给定每个弹簧的力量,求袋鼠最少需要多少跳能够到达对岸。如果无法到达输出-1

思路:过河问题。dp肯定能做,简单的一维dp,先来别人的。

import java.util.Scanner;public class Main {static int [] dp=new int [100010];static int [] d=new int [100010];static int inf=2000000000;static int minValue(int n, int m){if(n>=m)return  m;return n;}public static void main(String[] args) {Scanner r=new Scanner(System.in);int n=r.nextInt();for(int i=1; i<=n; i++)d[i]=r.nextInt();for(int i=1; i<=n+1; i++){dp[i]=inf;}dp[1]=0;d[n+1]=1;for(int i=1; i<=n; i++){for(int j=i+1; j<=i+d[i]&&j<=n+1; j++){//if(d[j])if(d[j]==0)continue;dp[j]=minValue(dp[j], dp[i]+1);}}if(dp[n+1]==inf)System.out.println("-1");else System.out.println(dp[n+1]);r.close();}
}

我自己的其实差不多,但是是后面到前面dp的,先找到一步能到岸上的,再找一步能到一次到岸上的,最后看flag[0] 能不能到达,每次记录上一次的最小位置就行,后面的要都是考虑过能最小次数能到到岸上的,要不就是不能到岸上的。

#include <iostream>
#include <vector>
#include <assert.h>
using namespace std;
int main() {int n ;cin>>n;vector<int> re;int a = n;while(a--) {int b ;cin>>b;re.push_back(b);}vector<int> flag(n+1,0);flag[n] = 1;int min1 = n,min2 = n;int count = 0, flag2 = 0;while(1) {min1 = min2;for(int i = 0; i < min1; i++) {if(flag[i] == 0&&re[i]+i>=min1){flag[i] = 1;if(i<min2) min2 = i;flag2 = 1;}}if(flag2 == 0) {cout<<-1;return 0;}count++;flag2 = 0;if(flag[0] == 1) {cout<<count;return 0;}}return 0;
}

搜狐 2017秋招研发相关推荐

  1. 搜狐2017秋招研发工程师笔试题目

    第一题:保留最大的数字 题目 给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大. 输入描述: 输入为两行内容,第一行是正整数number,1 ≤ len ...

  2. 【笔试题】京东2017秋招笔试真题

    笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...

  3. 2017秋招求职历程总结

    2017秋招求职历程总结 从小的梦想就是有朝一日能够进入汽车行业工作,很幸运刚毕业的第一份工作便实现了此梦想,感谢大学遇到的那些人. 终于在国庆之前拿到了一份还算满意的offer.9月1号从实习单位离 ...

  4. 百度2016/2017秋招部分题目解析

    今天把百度2016/2017秋招剩余的4星题目,以及少部分有难度或者比较有趣味的3星题目来一起分析下,所以这次就来个合集了(共包含了4个题目),总体来看题目比较简单,所以分析也会写得相对简略一些.尽管 ...

  5. 美团点评2017秋招笔试编程题

    美团点评2017秋招笔试编程题 1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n<=骰子最大点数且是 ...

  6. 字节跳动2020秋招研发笔试题

    字节跳动秋招研发笔试题 最近在忙考研,高数复习完了,看了下数据结构和算法,然后对人生比较迷茫. 该不该放弃考研,又怕考不上面临找工作的问题,索性看了几家科技巨头的秋招试题,贴下来和大家分享下 基本都是 ...

  7. 牛客网练习,某公司2017秋招 叫车 2017年

    牛客网练习,某公司2017秋招.叫车 2017年 第一题: 现有某函数,其方法声明为:int func(int x) 该函数对应的ARM汇编代码如下: 0000016A PUSH {LR} 00000 ...

  8. 牛客网练习,某公司2017秋招。叫车 2017年

    牛客网练习,某公司2017秋招.叫车 2017年 第一题:     现有某函数,其方法声明为:int func(int x)     该函数对应的ARM汇编代码如下:     0000016A     ...

  9. 搜狐2017年财报可圈可点,张朝阳抓住内容风口迎来了第二春

    1月29日,搜狐发布了2017年四季度和全年财报,成为最先发财报的中概股.搜狐第四季度总收入为5.10亿美元,较2016年同期增长24%:全年总收入为18.6 亿美元,较2016增长13%,而去年这两 ...

最新文章

  1. python 修改列表中的元素
  2. xcode升级xcode9 1之后报错swift stdlib tool error
  3. linux运行python文件socket未定义_Python服务器名称错误:未定义全局名称“SocketError”...
  4. [Web开发] MySpace 发布开发接口
  5. linux之如何快速在文本里面写入内容
  6. Makefile用法链接
  7. dataBinding和retrofit的使用
  8. C语言 main函数
  9. 网上购物系统(Task100)——业务逻辑层BLL(面向接口的编程模式)
  10. hadoop 学习心得
  11. Opencv surf算法
  12. 通盘无妙招与神来之笔的两种推广策略
  13. Linux并行执行权限,如何在Linux中使用flock控制程序的异步执行
  14. React Native之样式
  15. 软件测试之构建测试---BVT
  16. Windows 7/8 创建WIFI热点
  17. 增强学习系列之(二):实现一个简单的增强学习的例子
  18. mysql plsql 语法_PL/SQL基本语法
  19. 单样本t检验中指标分析
  20. python作者_精心整理|Python爱好者社区历史文章合集(作者篇)

热门文章

  1. 线性代数笔记:矩阵的对角化、SVD分解及应用
  2. 液冷数据中心规模化扩张在即,曙光数科发布“冷平衡”战略
  3. 微信小程序接入腾讯视频插件
  4. linphone-android 编译,Linphone Android在Ubuntu下的编译
  5. 2023年,我依然选择辞职
  6. QComboBox的代理(订制QComboBox组合框)
  7. centos7环境变量设置
  8. Scala 优雅的异常处理之 try 与 Try
  9. 使用moment倒计时计算
  10. vagrant Homestead 环境搭建