网易2020校招笔试- 测试开发工程师

 

 

#include <iostream>
#include<vector>
using namespace std;
 
int main(){
    int t,a,b;
    cin >> t;
    int x;
    for (int i = 0; i < t; i++){
        cin >> x;
        if (x < 10)
            cout << x << endl;
        else{
            a = x % 9;
            b = x / 9;
            vector<int> result;
            int j = 0;
            for (j = 0; j < b; j++) {
                result.push_back(9);
            }
            if (a != 0) {
                result.push_back(a);
            }
            for (int k=result.size()-1; k >= 0; k--)
                cout << result[k];
            cout << endl;
        }
         
    }
}

 

 

 自己的解法(通过率只有20%)

#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
 
int main(){
    int t;
    cin >> t;
    long a[3];
    long long sum = 0;
    vector<long long> res;
    for (int i = 0; i < t; i++){
        cin >> a[0] >> a[1] >> a[2];
        sort(a, a + 3);
        sum=a[0]+a[1]+a[2];
        if(sum%3==0){
            sum=sum/3;
            if(a[0]+a[1]<sum)
                sum=sum+1;
        }
        else{
            int tmp=a[0]+(2*(a[1]-a[0]))/3+(a[2]-a[1])/2+1;
            if(tmp-(sum-tmp)/2>1)
                sum=tmp-1;
            else
                sum=tmp;
        }
             
        res.push_back(sum);
    }
    for (int i = 0; i < t;i++)
        cout << res[i] << endl;
    return 0;
}

(牛客网别人的解法) 

 

#include <iostream>
#include <cmath>
using namespace std;
void sort(long list[3]) // 手动冒泡排序
{
    if (list[0]<list[1]) swap(list[0],list[1]);
    if (list[0]<list[2]) swap(list[0],list[2]);
    if (list[1]<list[2]) swap(list[1],list[2]);
}
  
int main()
{
    int n;
    long l[3], sum;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> l[0] >> l[1] >> l[2];
        sort(l);
        sum = l[0] + l[1] + l[2];
        cout << max((sum + 2) / 3, (l[0] + 1) / 2) << endl;//加2与加1是为上取整
    }
}

 

 

牛客网别人的解法 

 

 

链接:https://www.nowcoder.com/questionTerminal/546b22232fd14997a10a8d2a7a158cbc?f=discussion
来源:牛客网

#include<iostream>
#include<vector>
  
using namespace std;
  
int main() {
    int t;
    cin >> t;
    while(t--) {
        int n;
        cin >> n;
        if (n<=0) {
            cout << 0 << endl;
            continue;
        }
          
        vector<long long> a;
        long long tmp;
        while(n--) {
            cin >> tmp;
            a.push_back(tmp);
        }
          
        // 闭区间
        int maxlen = 1;
        long long nowsum = a[0];
        int left=0, right=0;
        while(right+1 < a.size()) {
            if (a[right+1] >= a[right] && a[right+1] >= nowsum) {
                nowsum += a[right+1];
                right ++;
                maxlen = max(maxlen, right-left+1);
                continue;
            }
              
            nowsum -= a[left];
            left ++;
            if (left > right) {
                right = left;
                nowsum = a[left];
            }
        }
          
        cout << maxlen << endl;
    }
}

 

 

 自己的方法:只能通过30%,但是数组溢出,嵌套太深。

#include <iostream>
#include<vector>
#include<string>
using namespace std;

int main(){
	int t,n,tmp;
	cin >> t;
	
	vector<string> res;
	for (int i = 0; i < t; i++){
		cin >> n;
		long long sum = 0;
		vector<long> a;
		for (int j = 0; j < n; j++){
			cin >> tmp;
			a.push_back(tmp);
			sum = sum + tmp;
		}
		if (sum % 2 != 0){
			res.push_back("NO");
		}
		else{
			sum = sum / 2;
			int j = 0,k=n-1;
			long long head = 0;
			while (j!=k)
			{
				head = head + a[j];
				if (head == sum && j!=k){
					res.push_back("YES");
					break;
				}
				else if (head < sum && j!=k && k==n-1){
					j++;
				}
				else if (head < sum && j != k && k != n - 1){
					j--;
				}
				else if (j == k && head != sum){
					res.push_back("NO");
					break;
				}
				else if(head>sum && k!=n-1){
					head = head - a[k]-a[j];
					k--;
				}
				else{
					head = head - a[j];
					j--;
					int temp = j;
					j = k;
					k = temp;
				}
			}
		}
	}
	for (int i = 0; i < res.size(); i++)
		cout << res[i] << endl;
	return 0;
}

 

根据提供的引用内容,测试开发工程师校招笔试题的复习内容包括以下几个方面: 1. 不定项选择题: 这部分考察的是基础知识,包括SV基本数据类型、UVM的基础知识等。 2. 简答题:这部分考察的是对特定问题的简要回答,包括对数组和队列的优缺点以及应用场景、sequence和sequencer的机制、testcase如何发送参数到sequence等。 3. 编程题:这部分考察的是编程能力,包括解决具体问题的编程思路和代码实现。例如,不使用randc产生随机数,要求数组中的数不能重复且第八个数为8、最大值为9。 4. 画图题:这部分考察的是对特定概念或流程的图示能力,包括APB的读写操作时序图、tb的框架图以及验证的流程图等。 综上所述,测试开发工程师校招笔试题的复习内容主要包括基础知识、简答题的回答能力、编程题的解决思路和代码实现能力以及画图题的图示能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [互联网行业面试笔试真题资料BAT谷歌微软等笔试面试真题复习资料合集200MB.zip](https://download.csdn.net/download/GZXGYZ/16604785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [海康威视 2024届实习生 应用软件开发工程师 Java 在线笔试](https://blog.csdn.net/guliguliguliguli/article/details/130571927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [【2023芯动科技提前批笔试题】~ 题目及参考答案](https://blog.csdn.net/qq_40549426/article/details/125948868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值