华为春招笔试0304

1.旋转矩阵,顺时针90度旋转M次,M%4值分类讨论
#include<iostream>
using namespace std;
int main(){
	int N,M;
	cin>>N;
	int a[N][N];
	for(int i=0;i<N;i++){
		for(int j=0;j<N;j++){
			cin>>a[i][j];
		}
	}
	cin>>M;
	int time=M%4;
	if(time==0){
		for(int i=0;i<N;i++){
			for(int j=0;j<N;j++){
				if(j!=N-1)
				cout<<a[i][j]<<" ";
				else cout<<a[i][j];
			}
			cout<<endl;
		}
	}
	else if(time==1){
		for(int i=0;i<N;i++){
			for(int j=N-1;j>=0;j--){
				if(j!=0)
				cout<<a[j][i]<<" ";
				else cout<<a[j][i];
			}
			cout<<endl;
		}
	}
	else if(time==2){
		for(int i=N-1;i>=0;i--){
			for(int j=N-1;j>=0;j--){
				if(j!=0)
				cout<<a[i][j]<<" ";
				else cout<<a[i][j];
			}
			cout<<endl;
		}
	}
	else if(time==3){
		for(int i=N-1;i>=0;i--){
			for(int j=0;j<N;j++){
				if(j!=N-1)
				cout<<a[j][i]<<" ";
				else cout<<a[j][i];
			}
			cout<<endl;
		}
	}
	return 0;
}
2,k小朋友分n糖果(我写出来了没过,考完发现是一个k写成n了,递归还需练习),用dfs两次即可
#include<iostream>
using namespace std;
int sss=0;
void huisu(int n,int k,int size[][1],int m,int sum){
	if(m>k)	return;
	if(sum>n)	return;
	if(sum==n){
		for(int i=0;i<k;i++){
			for(int j=0;j<size[i][0];j++)
				cout<<"*";
			if(i!=k-1)
				cout<<"|";
		}
		cout<<endl;
		return;
	}
	for(int j=n-sum;j>=0;j--){
			size[m][0]=j;
		//	cout<<"sum="<<sum<<" m="<<m<<" j="<<j<<endl; 
			huisu(n,k,size,m+1,sum+j);
		}
}
void huisu2(int n,int k,int size[][1],int m,int sum){
	if(m>k)	return;
	if(sum>n)	return;
	if(sum==n){
		sss++;
		return;
	}
	for(int j=n;j>=0;j--){
			size[m][0]=j;
			huisu2(n,k,size,m+1,sum+j);
		}
}
int main(){
	int n,k;
	cin>>n>>k;
	int t=0;
	//t=C(k-1) (n+1)
	int size[k][1];
	for(int i=0;i<k;i++)	size[i][0]=0;
	huisu2(n,k,size,0,0);
	cout<<sss<<endl;
	huisu(n,k,size,0,0);
	return 0;
}
3.第三题动态规划最短编辑距离(leetcode72)好久之前写了,现在边笔试边复习了下,还行

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int change(string a,string b){
	int sum=0;
	int len1=a.length();
	int len2=b.length();
	int df[len1][len2];
	if(a[0]==b[0])	df[0][0]=0;
	else df[0][0]=1;
	for(int i=1;i<len2;i++){
		if(a[0]==b[i])
			df[0][i]=i;
		else	df[0][i]=df[0][i-1]+1;
	}
	for(int i=1;i<len1;i++){
		if(a[i]==b[0])
			df[i][0]=i;
		else	df[i][0]=df[i-1][0]+1;
	}
	for(int i=1;i<len1;i++){
		for(int j=1;j<len2;j++){
			if(a[i]==b[j]){
				df[i][j]=df[i-1][j-1];
			}
			else{
				df[i][j]=min(min(df[i-1][j],df[i][j-1])+1,df[i-1][j-1]+1);
			}
		}
	}
	return df[len1-1][len2-1];
}
int main(){
	int N;
	cin>>N;
	string str[N];
	string res[N];
	int sum=0;
	for(int i=0;i<N;i++){
		cin>>str[i];
	}
	for(int i=0;i<N;i++){
		cin>>res[i];
	}
	for(int i=0;i<N;i++){
		sum+=change(str[i],res[i]);
	}
	cout<<sum<<endl;
}



#华为春招笔试##华为##春招#
全部评论
大牛太厉害了!
点赞 回复 分享
发布于 2020-03-10 03:53
你好~我也是3.4笔试的!请问,收到面试邀请了么? 我到现在也没有收到邮件短信啥的,不知道啥情况~笔试过了1、3题~没道理挂笔试呀
点赞 回复 分享
发布于 2020-03-14 16:14
请问题目能详细点吗?
点赞 回复 分享
发布于 2020-04-03 21:18

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
Bug压路:老哥看得出来你是想多展示一些项目,但好像一般最多两个就够了😂页数一般一页,多的也就2页;这些项目应该是比较同质化的,和评论区其他大佬一样,我也觉得应该展示一些最拿手的(质量>数量)😁😁😁专业技能部分也可以稍微精简一些
点赞 评论 收藏
分享
4 45 评论
分享
牛客网
牛客企业服务