4399游戏开发 回忆

纸牌52张,10张朝上,分成两堆,朝上数量一样, 盲人

∣ A ∣ = 10 , ∣ B ∣ = 42 \left|A\right| = 10, \left|B\right| =42 A=10,B=42
f ( A ) = ∣ { x ∈ A ∣ x 朝上 } ∣ f\left(A\right) = \left|\left\{x \in A| x \text{朝上}\right\}\right| f(A)={xAx朝上}

f ( A ) = x , f ( B ) = 10 − x f\left(A\right) = x, f\left(B\right) = 10-x f(A)=x,f(B)=10x
翻转 A A A,则 10 − x 10-x 10x朝上

14枚硬币最少称几下找到假币并且指出轻重

4下

顺带一提,只要找到假币但是不用知道轻重,也是4下

平面和点和射线

1)点到平面距离
2)过点作射线,已知射线方向向量,求和平面交点

https://blog.csdn.net/qq_39942341/article/details/134284201?spm=1001.2014.3001.5501

矩阵中固定块最大

给定大小 m × n m\times n m×n, 每个元素都是 1 , 0 , − 1 1,0,-1 1,0,1
找到和最大的大小为 h × w h\times w h×w的子矩阵

没找到完全一样的,找到了类似的题目
Leetcode1314. Matrix Block Sum

class Solution {
public:
    vector<vector<int>> matrixBlockSum(vector<vector<int>>& mat, int k) {
        int m = mat.size(), n = mat[0].size();
        int dp[105][105]={};
        for(int i=1;i<=m;++i){
            for(int j=1;j<=n;++j){
                dp[i][j] = mat[i-1][j-1] + dp[i][j-1] + dp[i-1][j] -dp[i-1][j-1];
            }
        }
        vector<vector<int> > ans;
        for(int i=0;i<m;++i){
            vector<int> temp;
            for(int j=0;j<n;++j){
                int r1 = max(i-k,0), r2 = min(i+k,m-1),c1=max(j-k,0),c2=min(j+k,n-1);
                temp.push_back(dp[r2+1][c2+1]-dp[r2+1][c1]-dp[r1][c2+1]+dp[r1][c1]);
            }
            ans.push_back(temp);
        }
        return ans;
    }
};

我当时的思路就是算2d前缀和然后枚举
时间复杂度 O ( m n ) O\left(mn\right) O(mn)
空间复杂度 O ( m n ) O\left(mn\right) O(mn)

数组加起来等于目标的对数

给定一个数组,找到 ( i , j ) \left(i,j\right) (i,j),使得 n u m s [ i ] + n u m s [ j ] = t a r g e t nums[i] + nums[j] = target nums[i]+nums[j]=target,然后问有几对
说实话,这题没说 i < j i<j i<j,也没说 i , i i,i i,i算不算

我当时的思路是用map统计
一边遍历一边统计,比如说到了 i i i,就去找目前有几个 t a r g e t − n u m [ i ] target-num[i] targetnum[i],加到答案里面

int search(vector<int>& a, int target){
	int ans = 0;
	map<int, int> mp;
	for(int& c:a){
		int temp = target - c;
		auto it = mp.find(temp);
		if(it != mp.end())ans += it->second;
		++mp[c];
	}
	return ans;
}

时间复杂度 O ( n log ⁡ n ) O\left(n\log n\right) O(nlogn)
空间复杂度 O ( n ) O\left(n\right) O(n)
小技巧:
如果有编程题,而且能看输出结果,并且能回头,前面有的题目可以直接后面验证一下放到前面

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nightmare004

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值