news 2026/8/26 8:09:49

一些算法思想

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一些算法思想

1. PTA天梯赛30题,类似双指针(索引i、j)遍历,

因为题目要求输出顺序i优先,所以i不回溯,而如果不匹配则需要移动j,导致可能跳过跟当前i不匹配,但是跟i++匹配的结果,所以每次匹配成功后,需要把j回溯到n-1(最右)处,通过visited位来跳过已经处理过的元素

int i = 0; int j = n - 1; while (i<j) { if (stu[i].sex != stu[j].sex && !stu[j].visited) { printf("%s %s\n", stu[i].name, stu[j].name); stu[j].visited = 1; // i不回溯,j回溯防止漏掉,通过visited位跳过 i++; j = n - 1; } else { j--; } }

2.

对于个数容量未知能用静态内存的大数组(一、二维都行)就用,更简单直接省时间,动态扩容尽量不要用!

只有题目给定了输入的容量,才用动态分配!

3.

hot100,回溯/全排列

根据字符串123生成字符的所有排列组合,通过回溯法

#include <stdio.h> #include <string.h> int count = 0; // 记录排列个数(你的变量名) char temp[100] = {0}; // 临时拼接排列,初始化为0(自动补\0) // 你的gesort函数(修复核心问题) void gesort(char* str, char res[50][100], int* visited, int step) { int len = strlen(str); // 原字符串长度 // 终止条件:排列拼接完成 if (step == len) { temp[step] = '\0'; 关键:补字符串结束符表示新拼接字符序列的结束 strcpy(res[count], temp); // 复制到结果数组 count++; // 排列数+1 return; } // 遍历所有字符,选未使用的 for (int i = 0; i < len; i++) { if (visited[i] == 0) { // 未使用的字符 temp[step] = str[i]; 不用清空,会覆盖旧的拼接数据! visited[i] = 1; // 标记已使用 gesort(str, res, visited, step + 1); // 递归拼下一位 visited[i] = 0; // 回溯:恢复未使用 } } } void main() { char str[100]; // 你的变量名 printf("请输入要生成排列的字符串(如123):"); scanf("%s", str); // 输入字符串 int visited[100] = {0}; // 你的变量名,初始全0 char res[50][100] = {0}; // 你的变量名,初始全0(避免乱码) count = 0; // 重置计数(防止全局变量残留) // 调用函数:直接传res(不再强制类型转换,避免错误) gesort(str, res, visited, 0); // 打印结果(核心:确保有输出) if (count == 0) { printf("未生成任何排列!\n"); } else { printf("\n生成的排列总数:%d\n", count); printf("所有排列:\n"); for (int i = 0; i < count; i++) { printf("%d: %s\n", i+1, res[i]); } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 16:57:10

GEO合规决策指南:六步框架,系统评估与规避内容风险

在评估生成式引擎优化&#xff08;GEO&#xff09;的合规性与内容风险时&#xff0c;决策者必须建立一个系统性的认知框架&#xff0c;这远非简单的“是”或“否”能回答。GEO的核心目标在于通过优化内容结构、语义丰富度与信源权威性&#xff0c;帮助AI系统更准确理解和信任您…

作者头像 李华
网站建设 2026/7/14 16:57:11

3.2 交换机的包转发操作

在上一节中&#xff0c;我们了解到集线器通过 “广播式” 转发&#xff0c;将信号发往所有端口&#xff0c;这导致了共享介质下的冲突与低效。而交换机的出现&#xff0c;彻底改变了这一局面。它不再是简单的信号放大器&#xff0c;而是一台智能转发设备&#xff0c;通过解析以…

作者头像 李华
网站建设 2026/7/14 16:57:24

OpenClaw 第二篇:核心架构拆解——从一句指令到自动执行的全流程

OpenClaw 第二篇&#xff1a;核心架构拆解 —— 从一句指令到自动执行的全流程这一篇我们不讲虚的&#xff0c;用零基础也能看懂的方式&#xff0c;把 OpenClaw 从 “你发指令” 到 “电脑自动干活” 的完整链路讲透。看完你会真正明白&#xff1a;它为什么能做到会思考、会动手…

作者头像 李华
网站建设 2026/7/14 16:57:24

el-table 多行单元格合并+hover效果

<template><div class"sfzy"><div class"ejbt"><p>服装订单统计</p></div><div class"tableBox"><el-table :data"tableInfo.tableData" :span-method"objectSpanMethod"heig…

作者头像 李华
网站建设 2026/7/14 16:57:25

LLM Weekly(2026.2.9-2026.2.15)

网页快讯 GPT‑5.3‑Codex‑Spark 发布 OpenAI 推出 GPT‑5.3‑Codex‑Spark,这是一款轻量化的 GPT‑5.3‑Codex 模型,专为在 Cerebras Wafer Scale Engine 3 上实现超高速、实时代码生成优化。 Codex‑Spark 每秒可输出超过 1000 个 token,支持 128k 纯文本上下文长度,并…

作者头像 李华