2024精编面试算法题类型之暴力枚举

输入

2 3 6

输出

mistake

4.序列和


给出一个正整数N和长度L,找出一段长度大于等于L的连续非负整数,他们的和恰好为N。答案可能有多个,我我们需要找出长度最小的那个。

例如 N = 18 L = 2:

5 + 6 + 7 = 18

3 + 4 + 5 + 6 = 18

都是满足要求的,但是我们输出更短的 5 6 7

输入描述:

输入数据包括一行: 两个正整数N(1 ≤ N ≤ 1000000000),L(2 ≤ L ≤ 100)

输出描述:

从小到大输出这段连续非负整数,以空格分隔,行末无空格。如果没有这样的序列或者找出的序列长度大于100,则输出No

示例1

输入

18 2

输出

5 6 7

5. 01翻转


牛牛正在挑战一款名为01翻转的游戏。游戏初始有A个0,B个1,牛牛的目标就是把所有的值都变为1,每次操作牛牛可以任意选择恰好K个数字,并将这K个数字的值进行翻转(0变为1,1变为0)。牛牛如果使用最少的操作次数完成这个游戏就可以获得奖品,牛牛想知道最少的操作次数是多少?

例如:A = 4 B = 0 K = 3

0000 -> 1110 -> 1001 -> 0100 -> 1111

需要的最少操作次数为4

输入描述:

输入为一行: 一共三个整数A(0 ≤ A ≤ 100,000),B(0 ≤ B ≤ 100,000),K(1 ≤ K ≤100,000).以空格分隔

输出描述:

输出一个整数,表示最少需要的操作次数。如果不能完成,则输出-1

示例1

输入

4 0 3

输出

4

6.最长公共连续子串


牛牛有两个字符串(可能包含空格),牛牛想找出其中最长的公共连续子串,希望你能帮助他,并输出其长度。

输入描述:

输入为两行字符串(可能包含空格),长度均小于等于50.

输出描述:

输出为一个整数,表示最长公共连续子串的长度。

示例1

输入

abcde

abgde

输出

2

7.组装三角形


牛牛手里有N根木棒,分别编号为1~N,现在他从N根里想取出三根木棒,使得三根木棒构成一个三角形,你能计算出牛牛有多少种取法吗?(考虑两种取法中使用的木棒编号有一个不一样就认为是不同的取法)。

输入描述:

首先输入一个正整数N,接下来的一行共有N个正整数表示每个木棒的长度。

N ≤ 50, 木棒的长度 ≤ 10000.

输出描述:

输出一个整数表示方法数。

示例1

输入

5

1 2 3 4 5

输出

3

8.最小的矩形


牛牛在二维坐标系中画了N个点,且都是整点。现在牛牛想画出一个矩形,使得这N个点都在矩形内或者在矩形上。

矩形的边均平行于坐标轴。牛牛希望矩形的面积最小。请你帮助牛牛计算下最小矩形的面积。

输入描述:

首先输入一个正整数N表示点的个数(2 <= N <= 50)

接下来N行每行两个整数x, y,表示该点的坐标。绝对值均小于等于100.

输出描述:

一个整数表示最小矩形的面积。

示例1

输入

2

0 1

1 0

输出

1

9. 字符串分类


牛牛有N个字符串,他想将这些字符串分类,他认为两个字符串A和B属于同一类需要满足以下条件:

A中交换任意位置的两个字符,最终可以得到B,交换的次数不限。比如:abc与bca就是同一类字符串。

现在牛牛想知道这N个字符串可以分成几类。

输入描述:

首先输入一个正整数N(1 <= N <= 50),接下来输入N个字符串,每个字符串长度不超过50。

输出描述:

输出一个整数表示分类的个数。

示例1

输入

abcd

abdc

dabc

bacd

输出

1

10.优美的回文串


牛牛在书上看到一种字符串叫做回文串,当一个字符串从左到右和从右到左读都是一样的,就称这个字符串为回文串。牛牛又从好朋友羊羊那里了解到一种被称为优美的回文串的字符串,考虑一个长度为N只包含大写字母的字符串,写出它所有长度为M的连续子串(包含所有可能的起始位置的子串,相同的子串也要计入),如果这个字符串至少有K个子串都是回文串,我们就叫这个字符串为优美的回文串。现在给出一个N,牛牛希望你能帮他计算出长度为N的字符串有多少个是优美的回文串(每个位置都可以是’A’~'Z’的一个。)

输入描述:

输入数据包括三个整数N, M, K(2 ≤ N ≤ 11, 2 ≤ M ≤ N, 0 ≤ K ≤ 11).

输出描述:

输出一个整数,表示所求的字符串个数.

示例1

输入

2 2 1

输出

26 长度为2的字符串,它长度为2的子串只有它自身。长度为2的回文串有"AA",“BB”,“CC”…“ZZ”,一共26种。

11. 赶去公司


终于到周末啦!小易走在市区的街道上准备找朋友聚会,突然服务器发来警报,小易需要立即回公司修复这个紧急bug。假设市区是一个无限大的区域,每条街道假设坐标是(X,Y),小易当前在(0,0)街道,办公室在(gx,gy)街道上。小易周围有多个出租车打车点,小易赶去办公室有两种选择,一种就是走路去公司,另外一种就是走到一个出租车打车点,然后从打车点的位置坐出租车去公司。每次移动到相邻的街道(横向或者纵向)走路将会花费walkTime时间,打车将花费taxiTime时间。小易需要尽快赶到公司去,现在小易想知道他最快需要花费多少时间去公司。

输入描述:

输入数据包括五行:

第一行为周围出租车打车点的个数n(1 ≤ n ≤ 50)

第二行为每个出租车打车点的横坐标tX[i] (-10000 ≤ tX[i] ≤ 10000)

第三行为每个出租车打车点的纵坐标tY[i] (-10000 ≤ tY[i] ≤ 10000)

第四行为办公室坐标gx,gy(-10000 ≤ gx,gy ≤ 10000),以空格分隔

第五行为走路时间walkTime(1 ≤ walkTime ≤ 1000)和taxiTime(1 ≤ taxiTime ≤ 1000),以空格分隔

输出描述:

输出一个整数表示,小易最快能赶到办公室的时间

示例1

输入

2 -2 -2 0 -2 -4 -2 15 3

输出

42

12.调整队形


在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1)。其中有一些是男生,有一些是女生,男生用’B’表示,女生用’G’表示。小朋友们都很顽皮,当一个男生挨着的是女生的时候就会发生矛盾。作为幼儿园的老师,你需要让男生挨着女生或者女生挨着男生的情况最少。你只能在原队形上进行调整,每次调整只能让相邻的两个小朋友交换位置,现在需要尽快完成队伍调整,你需要计算出最少需要调整多少次可以让上述情况最少。例如:

GGBBG -> GGBGB -> GGGBB

这样就使之前的两处男女相邻变为一处相邻,需要调整队形2次

输入描述:

输入数据包括一个长度为n且只包含G和B的字符串.n不超过50.

输出描述:

输出一个整数,表示最少需要的调整队伍的次数

示例1

输入

GGBBG

输出

2

13.集合


链接:

小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.

小易的老师给了小易这样一个集合:

S = { p/q | w ≤ p ≤ x, y ≤ q ≤ z }

需要根据给定的w,x,y,z,求出集合中一共有多少个元素。小易才学习了集合还解决不了这个复杂的问题,需要你来帮助他。

输入描述:

输入包括一行: 一共4个整数分别是w(1 ≤ w ≤ x),x(1 ≤ x ≤ 100),y(1 ≤ y ≤ z),z(1 ≤ z ≤ 100).以空格分隔

输出描述:

输出集合中元素的个数

示例1

输入

1 10 1 1

输出

10

14. 涂棋盘


小易有一块n*n的棋盘,棋盘的每一个格子都为黑色或者白色,小易现在要用他喜欢的红色去涂画棋盘。小易会找出棋盘中某一列中拥有相同颜色的最大的区域去涂画,帮助小易算算他会涂画多少个棋格。

输入描述:

输入数据包括n+1行:

第一行为一个整数n(1 ≤ n ≤ 50),即棋盘的大小

接下来的n行每行一个字符串表示第i行棋盘的颜色,'W’表示白色,'B’表示黑色

输出描述:

输出小易会涂画的区域大小

示例1

输入

3 BWW BBB BWB

输出

3

15.小易记单词


小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词,如果小易写出的单词是在系统提供的,将获得这个单词长度的平方的分数。注意小易写出的单词可能重复,但是对于每个正确的单词只能计分一次。

输入描述:

输入数据包括三行:

第一行为两个整数n(1 ≤ n ≤ 50)和m(1 ≤ m ≤ 50)。以空格分隔

第二行为n个字符串,表示小易能记住的单词,以空格分隔,每个单词的长度小于等于50。

第三行为m个字符串,系统提供的单词,以空格分隔,每个单词的长度小于等于50。

输出描述:

输出一个整数表示小易能获得的分数

示例1

输入

3 4 apple orange strawberry strawberry orange grapefruit watermelon

输出

136

16.分饼干


易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了。易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友。现在你需要计算出k有多少种可能的数值

输入描述:

输入包括两行:

第一行为盒子上的数值k,模糊的数位用X表示,长度小于18(可能有多个模糊的数位)

第二行为小朋友的人数n

输出描述:

输出k可能的数值种数,保证至少为1

示例1

输入

9999999999999X 3

输出

4

17.买帽子


度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?

输入描述:

首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)

输出描述:

如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1

示例1

输入

10

10 10 10 10 20 20 30 30 40 40

输出

30

18.度度熊回家


一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。

但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?

输入描述:

输入一个正整数N, N <= 50。

接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于100

输出描述:

输出一个整数表示度度熊最少需要走的距离。

示例1

输入

4

1 4 -1 3

输出

4

19.寻找三角形


三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用’R’, ‘G’, 'B’表示。

现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大。

但是三角形必须满足:三个点的颜色要么全部相同,要么全部不同。

输入描述:

首先输入一个正整数N三维坐标系内的点的个数.(N <= 50)

接下来N行,每一行输入 c x y z,c为’R’, ‘G’, ‘B’ 的其中一个。x,y,z是该点的坐标。(坐标均是0到999之间的整数)

输出描述:

输出一个数表示最大的三角形面积,保留5位小数。

示例1

输入

5

R 0 0 0

R 0 4 0

R 0 0 3

G 92 14 7

G 12 16 8

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值