news 2026/4/23 10:42:23

入门必刷4题:算法面试轻松拿下

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
入门必刷4题:算法面试轻松拿下

一、今天学习目标

拿下4 道入门必考题,简单、高频、好拿分:

  1. 两数之和
  2. 反转单链表
  3. 合并两个有序链表
  4. 有效的括号

1)两数之和

给定数组与目标值,找到两个数下标和为 target。

思路:暴力双重循环(入门版)

#include <stdio.h> void twoSum(int* nums, int n, int target) { for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (nums[i] + nums[j] == target) { printf("%d %d\n", i, j); return; } } } } int main() { int nums[] = {2, 7, 11, 15}; twoSum(nums, 4, 9); // 输出 0 1 return 0; }

2)反转单链表(迭代版)

三指针:prev、cur、next,逐个翻转方向。

struct ListNode { int val; struct ListNode *next; }; struct ListNode* reverseList(struct ListNode* head) { struct ListNode *prev = NULL, *cur = head, *next; while (cur) { next = cur->next; cur->next = prev; prev = cur; cur = next; } return prev; }

3)合并两个有序链表

类似归并排序的 merge,谁小取谁。

struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { if (!l1) return l2; if (!l2) return l1; if (l1->val < l2->val) { l1->next = mergeTwoLists(l1->next, l2); return l1; } else { l2->next = mergeTwoLists(l1, l2->next); return l2; } }

4)有效的括号(栈)

左括号入栈,右括号匹配栈顶。

#include <stdbool.h> #include <string.h> bool isValid(char* s) { char stack[10000]; int top = -1; int len = strlen(s); for (int i = 0; i < len; i++) { char c = s[i]; if (c == '(') stack[++top] = ')'; else if (c == '[') stack[++top] = ']'; else if (c == '{') stack[++top] = '}'; else { if (top < 0 || stack[top] != c) return false; top--; } } return top == -1; }

二、今日小练习

  1. 对数组[3,2,4],target=6,求两数之和下标
  2. 链表1→2→3→4反转后结果
  3. 验证"{[]}""{[)]}"是否合法

答案:

  1. 1 2
  2. 4→3→2→1
  3. 合法 / 不合法
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:42:19

深度优化指南:ThinkPad风扇控制工具TPFanCtrl2的完整配置方案

深度优化指南&#xff1a;ThinkPad风扇控制工具TPFanCtrl2的完整配置方案 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 TPFanCtrl2是一款专为ThinkPad用户设计的Wind…

作者头像 李华
网站建设 2026/4/23 10:40:58

告别地址算懵!图文详解AT24C系列EEPROM的页地址与设备地址规划

AT24C系列EEPROM地址规划实战指南&#xff1a;从硬件配置到代码实现 当你在STM32项目中第一次使用AT24C系列EEPROM时&#xff0c;是否曾被那些复杂的设备地址和页地址计算搞得晕头转向&#xff1f;作为I2C总线上的经典存储器件&#xff0c;AT24C系列以其可靠的性能和广泛的应用…

作者头像 李华
网站建设 2026/4/23 10:40:29

用Django+ECharts复刻一个Boss直聘数据分析大屏(附完整源码与避坑指南)

用DjangoECharts打造招聘数据分析大屏实战指南 在数据驱动的时代&#xff0c;招聘数据分析已成为企业和求职者洞察市场趋势的重要工具。本文将带您从零开始构建一个功能完整的招聘数据分析平台&#xff0c;整合Django后端开发与ECharts数据可视化技术&#xff0c;实现数据的深度…

作者头像 李华
网站建设 2026/4/23 10:39:31

第八届传智杯复赛第二场 题补bxg25-27 或许要期待明天

一、题意解释子数组是类似字符串的子串&#xff0c;必须连续。题目要求求所有子数组的按位或的和。按位或就是把两个数二进制表示&#xff0c;对应的位进行或&#xff0c;只要有一个是1&#xff0c;那么就是1&#xff08;只有全0才为0&#xff09;。二、思考思路我们先考虑暴力…

作者头像 李华
网站建设 2026/4/23 10:38:39

避开那些坑:STM32项目中最容易引发Hard-Fault的5种编程习惯及预防措施

避开那些坑&#xff1a;STM32项目中最容易引发Hard-Fault的5种编程习惯及预防措施 在嵌入式开发领域&#xff0c;Hard-Fault就像一位不速之客&#xff0c;总在最不合时宜的时刻突然造访。特别是对于STM32开发者而言&#xff0c;这种硬件级错误往往意味着项目进度被迫中断&…

作者头像 李华