春招暑期总结 && 踏上新征程

4.26收到三封感谢信

  1. 字节测开二面 挂
  2. 腾讯 一面 挂
  3. 4399 挂

至今遇到的面试官都很好 -- 但是还是自己没有太大的亮点 -- 双非本科-无竞赛-项目水-基础不强-算法水平也很一般
所以至今没有亮点能让面试官看上。。。

引用罗翔老师视频上的话:我们很多时候是不是觉得我们抓的牌实在太差了呀,但是再差的牌你都应该打下去

说来遗憾,从初中到现在,很少有记录自己的状态 --因为太麻烦。
但活着活着,发现自己还是不会生活、不会学习。总之,人的脑袋是记忆是有限的。
所以在此打算用博客来记录这生活的每一天和学习的状态。

幸运地是有所小厂收留--也打算在实习的日子能厚积薄发。


今日复盘 : 4.26腾讯一面算法题

  1. 两数之和
  2. 消消乐 (当时没想到正确的方法)
    给一个字符串 “231972” 如果有相邻的两个字符串相加等于10就可消去,输出消去后最短长度
    例子 19 37 可消去 --最后剩22 输出长度 为 2
    其实就是考栈这种数据结构
#include<iostream>
#include<string>
#include<stack>
using namespace std;

int get(string& s) {
    stack<char> stk;
    for (auto c : s) {
        if (!stk.empty() && (c - '0') + (stk.top() - '0') == 10) {
            stk.pop();
        }
        else {
            stk.push(c);
        }
    }
    return stk.size();
}

int main() {
    string test = "231972";
    cout << get(test) << endl;
}
  1. 无重复的最长字符串(写了个基本滑动窗口的,面试官问可否优化)
//看了大佬的优化版本:left不必一个一个跳,直接跳到重复字符的后一个
 int lengthOfLongestSubstring(string s) {
        unordered_map<char,int> m;
        int left = 0, right = 0, res = 0;
        while (right < s.size()) {
            if (m.count(s[right]) && start <= m[s[right]]){
                left = m[s[right]] + 1;
            }
            res = max(res, right - left + 1);
            m[s[right]] = right;
            right++;
        }
        return res;
    }
  1. 红包分配 给定总金额和红包个数,输出每一个红包的金额(金额是随机的) 每一个红包上下限:1分 和 200元
#include<iostream>
#include<vector>
#include <time.h>
using namespace std;

int getRand(int amount, int num) {
        srand((unsigned)time(NULL));
        int maxa = min(amount - num + 1,20000);
        int mina = max(1,amount - (num - 1) * 20000);
        int  r = mina + rand() % (maxa - mina + 1);
    return r;
}

vector<int> redPacket(int amount, int num) {
    if (amount / num > 20000 || amount < num * 1)
        return {};
    vector<int> ans;
    for (int i = num; i > 1; i--) {
        int r = getRand(amount,i);
        amount -= r;
        ans.push_back(r);
    }
    ans.push_back(amount);
    return ans;
}

int main() {
    int a = 100000, b = 10;
    vector<int> res = redPacket(a, b);
    for (int& i : res) cout << i << " ";
    return 0;
}

今日小知识点

DNS
DNS域名解析协议 将域名解析成IP地址。
为啥要有域名?为啥机器不直接处理域名,而是要把域名转换成IP来处理呢

  1. 因为IP是一串32位的二进制数字,即使是点分十进制的IP地址也很难让人记住,所以要转化成让人比较容易记住的域名
  2. 因为域名的长度不是固定的,所以机器处理起来会比较困难。而IP地址长度是固定的,比较好处理。
    域名的解析
    域名到IP的解析是由分步在互联网的许多域名服务器程序共同完成的。应用程序把待解析的域名放在DNS请求报文中,
    以UDP数据报的方式发送给本地域名服务器。
    主机首先向本地域名服务器进行递归查询,
  3. 如果本地域名缓存中找到待解析域名的IP地址即直接返回该IP地址
  4. 如果不能,即由本地域名域名服务器代替主机去查找。
    本地域名服务器向根域名查找的一般是迭代查询,
  5. 本地域名服务器首先向根域名服务器查找,如果找到直接返回
  6. 如果没找到,根域名服务器会回复一个顶级域名服务器地址。
  7. 本地域名服务器继续向顶级域名服务器查找,如果找到直接返回
  8. 如果没找到,顶域名域名服务器会返回一个权威域名服务器地址
  9. 本地域名服务器继续向权威域名服务器查找,如果成功即返回,否则失败。
  10. 本地域名服务器把IP地址返回给主机。
posted @   网络好卡  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示