2023.9.23 小米 软件工程师 JS 方向笔试

1.矩阵求和

由于每次只会对行和列进行操作,因此我们可以分别记录最新的行操作,最新的列操作。

在累加计算答案的时候,每次比较一下行和列的操作哪一个是最新的即可。

long long martixsum(int n,vector<vector<int>>&op)
{
	vector<pair<int,int>>col(n+1,{0,0});
	vector<pair<int,int>>line(n+1,{0,0});
	int t=1;
	for(auto c:op)
	{
	    int type=c[0];
		int index=c[1];	
		int val=c[2];
		if(type==0)
		{
			col[index].first=val;
			col[index].second=t++;
		}else
		{
			line[index].first=val;
			line[index].second=t++;
		}
	} 
	long long ans=0;
	for(int i=0;i<n;i++)
	 for(int j=0;j<n;j++)
	  if(col[i].second>line[j].second)ans+=col[i].first;
	  else ans+=line[j].first;
	
	return ans;
}

2.字符串翻转

模拟题,从左往右模拟反转即可,每次碰到的新的字符和当前字符不同,说明前缀需要翻转。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;cin>>s;
	long long ans=0;
	for(int i=0;i+1<(int)s.size();i++)ans+=i+1;
	cout<<ans<<endl;
	return 0;
}

#小米##笔试#
全部评论
想问问佬有没有面经
点赞 回复 分享
发布于 2023-12-04 12:05 陕西

相关推荐

醉蟀:你是我今年见过的最美牛客女孩
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务