范围合适,围绕前端,数据结构,操作系统的关键知识点
哈夫曼编码
关键路径
进程线程
栈顶指针
...考太久了忘记了还有啥
只可以采用Javascript(Node)
一个数(偶数位),从哪里劈开,两侧的和最小
情况A:从中间分开,得到的和最小,因为两边此时位数最接近
情况B:从中间前/后一位分开,位数必然比A多,
虽然A可能会向前进位和B位数一样多,但是A依旧比B小
综上选用A做就可以了
I 和F相互抵消(I ice,F fire)冰花骗骗花互相发生反应,其存在的原来位置变成'.'
先标记,再清除即可,不能边遍历边处理,会影响后面的,注意消除是上下左右都可以,连带消除
输入:
3 4
FIF.
.FIF
.FFI
输出:
....
....
.F..
emmm思路应该没错,不知道为什么不通过,如有佬耐心看的话,还请指教,如想看正确的在下面题解链接里
function judge(n,m,i,j,arr=[]){ let exp=/IF/; let exp1=/FI/; if(i>0){//上 if(exp.test(arr[i-1][j]+arr[i][j])||exp1.test(arr[i-1][j]+arr[i][j])){ return true; } } if(i<n-1){//下 if(exp.test(arr[i+1][j]+arr[i][j])||exp1.test(arr[i+1][j]+arr[i][j])){ return true; } } if(j>0){//左 if(exp.test(arr[i][j]+arr[i][j-1])||exp1.test(arr[i][j]+arr[i][j-1])){ return true; } } if(j<m-1){//右 if(exp.test(arr[i][j]+arr[i][j+1])||exp1.test(arr[i][j]+arr[i][j+1])){ return true; } } return false; } function fun(arr=[]){//arr:[n+1,m] let n=arr[0][0],m=arr[0][1];//n行,m列 let res=[]; for(let i=1;i<=n;i++){ // console.log(arr[i][0].split('')) res.push(arr[i][0].split('')); } for(let i=0;i<n;i++){ for(let j=0;j<m;j++){ if(judge(n,m,i,j,res)){ res[i][j]='D'; } } } for(let i=0;i<n;i++){ for(let j=0;j<m;j++){ if(res[i][j]==='D'){ // res[i].replace('D','.') res[i][j]='.'; } } console.log(res[i]); } } let arr=[]; arr.push(['3','4']) arr.push(['FIF.']) arr.push(['...I']) arr.push(['.F.I']) fun(arr)
以下题解来自4.15米哈游前端笔试-算法题部分-通俗易懂题解
假定有一个数组ai i>=0,i<n;bi=ai + ai-1 我们知道全部的bi,请问ai有多少种可能的组合 n 1e5,bi 1e9
先写出前几项,找规律,若我们假定第一项是x,那么所有的ai都可以用b和x表示,因此我们需要让所有的ai大于0都成立,转化为了一系列关于x的方程组,均大于0;
那么多写几项有没有规律呢,有的,除了x的剩下部分,也就是前面的全b的部分挺相似的。即所有的奇数项,偶数项成等差数列;注意起始项不同,且奇数是-x,偶数是+ x
可能输出负数,要跟0求一下max
#include <bits/stdc++.h> using namespace std; typedef pair<int, int> pii; typedef long long ll; #define rep(i, start, end) for (int i = start; i <= end; i++) #define lop(i, start, end) for (int i = start; i >= end; i--) int main() { ios_base::sync_with_stdio(0); // freopen("t.in", "r", stdin); // 数学? int n; cin >> n; vector<ll> b(n), t(n); rep(i, 0, n - 2) { cin >> b[i]; } t[1] = b[0], t[2] = b[1] - b[0]; ll up = LONG_LONG_MAX, down = LONG_LONG_MIN; for (int i = 3; i <= n; i += 2) { t[i] = b[i - 1] - b[i - 2] + t[i - 2]; } for (int i = 4; i <= n; i += 2) { t[i] = b[i - 1] - b[i - 2] + t[i - 2]; } for (int i = 1; i < n; i += 2) { up = min(up, t[i]); } for (int i = 2; i < n; i += 2) { down = max(down, -t[i]); } if (down < 0) { down = 0; } cout << up - down - 1; return 0; }
2023年最全前端面试(20w字)HTML5+CSS3+JS+TS4+Vue3+React18+八股文+手写+项目+笔试 涵盖了大部分知识点,部分目录展示
#软件开发2023笔面经##米哈游##前端##笔试##实习#