Leetcode Hot 100:入门ACM模式

ACM模式

ACM模式是一种需要自行处理输入输出的做题模式。
1、如何处理输入输出?

在这里插入图片描述


1.1、固定式输入分析

在这里插入图片描述


1)第一行输入三个数 x, y, z

longlong x, y, z; cin >> x >> y >> z;

2)前两行分别是整数 x, y

longlong x, y; cin >> x; cin >> y;// 或 cin >> x >> y; 也可以(cin 会自动跳过换行)

3)第一行一个整数 n,第二行输入 n 个整数

int n; cin >> n; vector<int>arr(n);for(int i =0; i < n; i++) cin >> arr[i];

1.2 不定式输入分析

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
while(getline(cin, line))

getline 会从输入里读一整行(直到换行符 \n)。
读成功返回 true;读到文件结束 EOF 返回 false → 循环结束。
所以每循环一次,就处理一行。

stringstream ss(line);

把这一整行字符串line变成一个“可像cin一样读”的流 ss。
之后就可以用ss >> num来解析行内的数字(自动按空格分隔)

while(ss >> num)

ss >> num的意思是:从ss这个输入流里读取一个整数到变量num。它的行为和 cin >> num很像,只不过数据来源不是键盘/标准输入,而是stringstream ss(line) 里那一行字符串。

2、输出分析

在这里插入图片描述


注意末尾,保证末尾没有空格或其他字符,否则可能出错。

在这里插入图片描述

3、OJ常见错误

在这里插入图片描述

4、面试中的ACM模式考察

在这里插入图片描述


记得把样例写出来,面试官就看你样例的输出的。
核心代码与输入输出分离,结构要清晰。

5、万能头文件
#include <bits/stdc++.h> 是GCC(GNU 编译器套件)中一个非标准的头文件,通常被称为“万能头文件”。它包含了C++标准库中几乎所有的头文件,比如 <iostream>、<vector>、<algorithm>、<string> 等等。只要包含了这一个文件,你就可以使用大部分 C++ 标准库的功能,而无需逐个去写许多 #include 语句。

塔子哥hot100入门必刷

1、数组的读入

题目内容:
给定一个整数数组 nums,求解数组的和。

输入共两行。
第一行为一个整数n,代表数组nums的长度。
第二行为n个整数,即数组的元素。

输出数组的和。

#include<bits/stdc++.h>usingnamespace std;intsummary(const vector<int>& nums){int sum=0;for(int i=0;i<nums.size();i++){ sum+=nums[i];}return sum;}intmain(){int n; cin>>n; vector<int>nums(n);for(int i=0;i<n;i++) cin>>nums[i]; cout<<summary(nums)<<endl;return0;}

2、链表的读入

给定一个整数数组nums,要求先构建一个链表,然后遍历链表并输出所有元素。

在这里插入图片描述


在一些涉及链表的面试题(如翻转、合并、排序链表)时,本题的基础代码可以作为模板。

#include<bits/stdc++.h>usingnamespace std;// 定义链表节点结构structListNode{int val; ListNode* next;ListNode(int x):val(x),next(nullptr){}};// 创建链表并返回头结点 ListNode*createLinkedList(const vector<int>& nums){if(nums.empty())returnnullptr; ListNode* head =newListNode(nums[0]); ListNode* cur = head;//size_t 是无符号类型,其取值范围至少为[0, SIZE_MAX],通常足够表示任何对象的大小for(size_t i =1; i < nums.size(); i++){ cur->next =newListNode(nums[i]); cur = cur->next;}return head;}// 遍历链表并输出voidprintLinkedList(ListNode* head){ ListNode* cur = head;while(cur){ cout << cur->val << endl; cur = cur->next;}}intmain(){int n; cin >> n;// 读取数组长度 vector<int>nums(n);for(int i =0; i < n; i++){ cin >> nums[i];// 读取数组元素} ListNode* head =createLinkedList(nums);// 创建链表printLinkedList(head);// 遍历链表并输出return0;}

3、二叉树的读入与构建

在这里插入图片描述
structTreeNode{int val; TreeNode* left; TreeNode* right;TreeNode(int x):val(x),left(nullptr),right(nullptr){}};

未完待续

Read more

AI 前端到底是什么?为什么说AI前端是未来趋势?

AI 前端到底是什么?为什么说AI前端是未来趋势?

⭐ 一、AI 前端和普通前端有什么区别? 下面是一张非常直观的对比: 内容普通前端AI 前端功能核心UI 展示 + 用户交互UI 展示 + 用户交互 + 智能内容生成与后端交互调用普通 REST API调用 大模型 API / AI 服务输出形式页面固定页面可动态生成 / 布局可变化原型制作Figma → 人工写页面Figma → AI 自动生成代码前端逻辑手写逻辑部分逻辑由 AI 执行(智能体 UI)用户体验按钮 + 表单对话式 UI / 多模态交互技术要求JS / Vue / ReactJS + AI SDK + Prompt + 多模态理解能力 一句话: 👉 普通前端 = 静态 UI 👉 AI 前端 = 会思考的 UI ⭐ 二、AI 前端需要学习哪些技术? AI 前端不是新语言,而是 前端

By Ne0inhk

Flutter 三方库 dart_webrtc 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、透明、基于 WebRTC 标准的工业级实时音视频通讯与低延迟流媒体引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 dart_webrtc 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、透明、基于 WebRTC 标准的工业级实时音视频通讯与低延迟流媒体引擎 在鸿蒙(OpenHarmony)系统的跨端视频会议、分布式安防监控、直播连麦或者是需要实现“端到端(P2P)”低延迟数据传输的场景中,如何通过一套 Dart 代码调用底层浏览器级的 WebRTC 算力?dart_webrtc 为开发者提供了一套工业级的、针对 Web 平台(JS 接口)进行高度封装的 WebRTC 适配方案。本文将深入实战其在鸿蒙 Web 入口应用中的音视频能力扩展。 前言 什么是 Dart WebRTC?它不仅是一个简单的。管理过程。由于由接口包装。

By Ne0inhk

Rspack下一代高性能 Web 构建工具

1. 引言 1.1 Rspack 简介 Rspack 项目背景 * Rspack 是由字节跳动团队开发的基于 Rust 语言的新一代 Web 构建工具,旨在解决现代前端项目中构建性能的瓶颈问题。随着前端项目的复杂度不断增加,传统的构建工具如 Webpack 在处理大型项目时逐渐暴露出构建时间过长、内存占用过高、开发体验不佳等问题。Rspack 应运而生,通过 Rust 语言的高性能特性,为开发者提供更快的构建速度和更好的开发体验。 * 该项目的开发目标是创建一个既保持与 Webpack 生态兼容性,又具备卓越性能的构建工具。Rspack 不仅关注构建性能的提升,还致力于改善开发者的整体工作流程,包括更快的热更新、更智能的缓存机制以及更友好的错误提示。 核心设计理念 * 高性能架构:利用 Rust 语言的并发优势和内存安全性,Rspack 能够实现真正的并行构建,充分利用多核处理器的性能。与传统的 JavaScript 构建工具相比,Rspack 在处理大量模块和依赖时表现出显著的优势,构建速度可以提升

By Ne0inhk
【前端实战】从 try-catch 回调到链式调用:一种更优雅的 async/await 错误处理方案

【前端实战】从 try-catch 回调到链式调用:一种更优雅的 async/await 错误处理方案

目录 【前端实战】从 try-catch 回调到链式调用:一种更优雅的 async/await 错误处理方案 一、问题背景:async/await 真的解决了一切麻烦吗? 二、真实业务场景下的痛点 1、错误需要“分阶段处理” 2、try-catch 的引入打破了 async/await 的链式范式 三、借鉴 Go、Rust 语言特性,错误也是一种结果 1、错误优先风格替代 try-catch 2、封装一个 safeAsync 工具函数 四、进阶版 safeAsync 函数设计 五、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“

By Ne0inhk