合集-牛客华为面试题
摘要:简短不看版本: 1. scanf读入16进制数,scanf("%x", var); 或者scanf("%i", var); 2. 求平方根:double sqrt(double);或者 double pow(double, 0.5); 3. 求 int最大范围:包含头文件 <limits.h> 然后
阅读全文
摘要:简短不看版: C语言中,不能进行 double a == double b 这样的运算。 另外,printf(".1f", &double) 的时候,数据输出不同时候,可能会不一样。 根本问题时float类型或者double类型的浮点数在计算机中不能精确储存。 单精度浮点型(float)存储方式 比
阅读全文
摘要:0. 背景介绍 最近在刷牛客的题。经常遇到排序问题(如下图),经常有一个附加的规则:相同的数值的,按照录入的顺序排序。 可是C++的sort()的底层是快速排序,并不能保证相同数值的顺序不改变。所以最后我不得不自己写冒泡排序。(冒泡排序不改变相同数值的录入顺序) 1. stable_sort() 的
阅读全文
摘要:简短不看版: 通配符和正则表达式比较 (1)通配符和正则表达式看起来有点像,不能混淆。可以简单的理解为通配符只有*,?,[],{}这4种,而正则表达式复杂多了。 (2)*在通配符和正则表达式中有其不一样的地方,在通配符中*可以匹配任意的0个或多个字符,而在正则表达式中他是重复之前的一个或者多个字符,
阅读全文
摘要:题目名称:63. 不同路径 II 链接:https://leetcode.cn/problems/unique-paths-ii/description/ 题目内容: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器
阅读全文
摘要:0. 先推荐引流一篇文章~~ 推荐文章:《动态规划之0-1背包问题(详解+分析+原码)》 写的很不错。但是动态数组的定义写得不如我下面: 这道题关键在于理解动态规划公式的定义: 可以定义一个二维数组dp[N][C+1],N是物品的种类,C是背包的承重(或者体积) dp[i][j]是这个数组的一个元素
阅读全文
摘要:传统解法 找出整体的规律,并使用一个辅助数组来存储新的矩阵。 从上图中的矩阵旋转来看:原矩阵元素的列数变成新矩阵元素的行数;原矩阵元素的行数是第2行,旋转后元素的列数是从右往左倒数第2列。因此对于原矩阵mat[i][j],旋转后该值应该在新矩阵ans[j][n-i-1]的位置。 1 2 3 4 5
阅读全文
摘要:过程: 树中的根节点表示幂集元素的初始状态(为空集); 叶子节点表示它的终结状态中幂集ρ(A)的8个元素; 第i层(i=1,2,3,...,n)层的分支节点,则表示已对集合A中前i-1个元素进行了取/舍处理的当前状态(其中左分支表示“取”,右分支表示“舍”); 将上述问题求解集合的幂集转换为先序遍历
阅读全文
摘要:题目描述 在一个机房中,服务器的位置标识在 n*m 的整数矩阵网格中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。 请你统计机房中最大的局域网包含的服务器个数。 输入描述 第一行输入两个正整数,n和m,0<n,m<=100
阅读全文
摘要:练习链接:https://www.nowcoder.com/exam/test/76850250/detail?pid=27976983&examPageSource=Search 题目:A+B(4) 输入数据包括多组。 每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100),
阅读全文
摘要:朴素解法: #include <stdio.h> #include <string.h> int main(){ char c; char word[100][22]={'\0'}; int num=0,top=0; while((c = getchar())!=EOF){ if(c>='a'&&c
阅读全文
摘要:解答: 如果珂珂在 H 小时内吃掉所有香蕉的最小速度是每小时 k 个香蕉,则当吃香蕉的速度大于每小时 k 个香蕉时一定可以在 小时H 小时内吃掉所有香蕉,当吃香蕉的速度小于每小时 k 个香蕉时一定不能在 小时H 小时内吃掉所有香蕉。 由于吃香蕉的速度和是否可以在规定时间内吃掉所有香蕉之间存在单调性,
阅读全文