微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每日一练--IT冷知识&C/C++--第五天

目录

LeNet

编程牛人的盲点

你了解你身边的这个工具吗?

好数对

不同路径

 N皇后 II


LeNet

1998 年 11 月 8 日,杨立昆(Yann LeCun)为世界带来了第一个正式的卷积神经网络,他是一名知名计算机科学家,Facebook 首席人工智能科学家,2018 年图灵奖得主;他在机器学习、计算机视觉、移动机器人等领域都有贡献。

杨立昆创造的这个早期经典卷积神经网络叫什么名字?

A LeNet-3
B LeNet-2
C LeNet-5
D LeNet-4

答案:LeNet-5


编程牛人的盲点

Guy Steele 从 70 年代起就活跃于编程语言领域,他是 Scheme 的创始人、Sun Java 团队的成员、Emacs 部分命令的最初设计者;他也是《Common Lisp: the Language》的作者。 下面哪个计算机语言是他最不熟悉的:

A C
B C++
C COBOL
D C#

答案:C#


你了解你身边的这个工具吗?

Ping 是一个常用的网络工具, 它Ping 是一个著名的命令行实用工具,用于测试 LAN 和 WAN 中设备之间的连接性和可达性,Ping 可以向指定的 URL 或 IP 地址发送一个 ICMP (Internet Control Message Protocol)回显请求包,并期望目标主机发送一个 ICMP 回显应答。如果收到目标主机的应答,则表明该主机仍在运行。 Ping 的全名是什么?

A Ping
B Packet InterNet Groper
C Ping Is Not Groper
D Probe Internet NG

答案:Packet InterNet Groper


好数对

已知一个集合A,对A中任意两个不同的元素求和,若求得的和仍在A内,则称其为好数对。例如,集合A={1 2 3 4},1+2=3,1+3=4,则1,2和1,3 是两个好数对。编写程序求给定集合中好数对的个数。 注:集合中最多有1000个元素,元素最大不超过10000 程序运行示例1:

 4↙
 1 2 3 4↙
 2
 ```

 程序运行示例2:

 ```json
 7↙
 2456 3251 654 890 100 754 1234↙
 1
 ```

 其中,“↙”表示输入

以下程序实现了这一功能,请你填补空白处内容:

```cpp
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n, i, j, t;
    scanf("%d", &n);
    int *a = (int *)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    int cout = 0;
    for (i = 0; i < n; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            for (t = 0; t < n; t++)
                ____________;
        }
    }
    printf("%d", cout);
    free(a);
    return 0;
}
A if (a[i] + a[j] <= a[t])
    cout++;
B if (a[i] + a[j] < a[t])
    cout++;
C if (a[i] + a[j] >= a[t])
    cout++;
D if (a[i] + a[j] == a[t])
    cout++;

 答案:

if (a[i] + a[j] == a[t])
    cout++;

不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

示例 1:

输入:m = 3, n = 7
输出28

示例 2:

输入:m = 3, n = 2
输出3
解释:左上角开始,总共有 3 条路径可以到达右下角。
1. 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右
3. 向下 -> 向右 -> 向下

示例 3:

输入:m = 7, n = 3
输出28

示例 4:

输入:m = 3, n = 3
输出6

提示

  • 1 <= m, n <= 100
  • 题目数据保证答案小于等于 2 * 109

以下程序实现了这一功能,请你填补空白处内容

#include <stdio.h>
#include <stdlib.h>
static int uniquePaths(int m, int n)
{
	int row, col;
	int *grids = malloc(m * n * sizeof(int));
	for (col = 0; col < m; coL++)
	{
		grids[col] = 1;
	}
	for (row = 0; row < n; row++)
	{
		grids[row * m] = 1;
	}
	for (row = 1; row < n; row++)
	{
		for (col = 1; col < m; coL++)
		{
			______________________________;
		}
	}
	return grids[m * n - 1];
}
int main(int argc, char **argv)
{
	if (argc != 3)
	{
		fprintf(stderr, "Usage: ./test m n\n");
		exit(-1);
	}
	printf("%d\n", uniquePaths(atoi(argv[1]), atoi(argv[2])));
	return 0;
}
A grids[row * m + col] = grids[row * m + col] + grids[row * m + col];
B grids[row * m + col] = grids[row * m + col - 1] + grids[(row - 1) * m + col];
C grids[row * m + col] = grids[row * m + col - 1] + grids[row * m + col + 1];
D grids[row * m + col] = grids[row * m + col + 1] + grids[row * m + col];

答案:

grids[row * m + col] = grids[row * m + col - 1] + grids[(row - 1) * m + col];

 N皇后 II

n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。

给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量

示例 1:

输入:n = 4
输出2
解释:如上图所示,4 皇后问题存在两个不同的解法。

示例 2:

输入:n = 1
输出1

提示

  • 1 <= n <= 9
  • 皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上。

以下程序实现了这一功能,请你填补空白处的内容

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
	int totalNQueens(int n)
	{
		vector<int> stack(n);
		return dfs(n, 0, stack);
	}
private:
	int dfs(int n, int row, vector<int> &stack)
	{
		int count = 0;
		if (row == n)
		{
			return count + 1;
		}
		else
		{
			for (int i = 0; i < n; i++)
			{
				if (row == 0 || !conflict(stack, row, i))
				{
					stack[row] = i;
					_______________________;
				}
			}
			return count;
		}
	}
	bool conflict(vector<int> &stack, int row, int col)
	{
		for (int i = 0; i < row; i++)
		{
			if (col == stack[i] || abs(row - i) == abs(col - stack[i]))
			{
				return true;
			}
		}
		return false;
	}
}

 

A count += dfs(n, row - 1, stack);
B count += dfs(n, row + 1, stack);
C count += dfs(n, row, stack);
D count += dfs(n + 1, row, stack);

答案:

count += dfs(n, row + 1, stack);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐