网站进不去怎么解决,时尚网站,如何建立网站详细流程,有谁做过网站建设系列综述#xff1a; #x1f49e;目的#xff1a;本系列是个人整理为了秋招面试的#xff0c;整理期间苛求每个知识点#xff0c;平衡理解简易度与深入程度。 #x1f970;来源#xff1a;材料主要源于左程云算法课程进行的#xff0c;每个知识点的修正和深入主要参考… 系列综述 目的本系列是个人整理为了秋招面试的整理期间苛求每个知识点平衡理解简易度与深入程度。 来源材料主要源于左程云算法课程进行的每个知识点的修正和深入主要参考各平台大佬的文章其中也可能含有少量的个人实验自证。 结语如果有帮到你的地方就点个赞和关注一下呗谢谢 【C】秋招实习面经汇总篇 文章目录 打表法矩阵处理 参考博客 点此到文末惊喜↩︎
打表法 打表 作用如果程序的值具有固定可接受的范围可以通过计算每个值对应解并形成一张表。从而提高计算速度方法通过暴力方法打印尽可能多组映射示例然后针对这多组映射示例推导规律定制简单的算法方向 笔试打表可以直接通过5个左右的示例进行纸上暴力手动打表找不出来再代码打表面试/工作向面试官讲明原理然后表示自己会进行完整的测试 特点 输入参数类型简单并且只有一个实际参数返回值类型简单并且只有一个通过暴力方法将输入与返回值的对应关系打印出来并优化 步骤 编写简单的暴力方法并打印多组示例的对应关系针对该多组示例的对应关系进行规律的查找然后面向规律编程 打表法示例1 小虎去买苹果商店只提供两种类型的塑料袋每种类型都有任意数量。 1)能装下6个苹果的袋子2)能装下8个苹果的袋子 小虎可以自由使用两种袋子来装苹果但是小虎有强迫症他要求自己使用的袋子数量必须最少且使用的每个袋子必须装满。给定一个正整数N返回至少使用多少袋子。如果N无法让使用的每个袋子必须装满否则返回-1 打表法示例2 定义一种数可以表示成若干(数量1)连续正数和的数比如: 5 23 5就是这样的数12 345 12就是这样的数1不是这样的数因为要求数量大于1个、连续正数和2 1 12也不是因为等号右边不是连续正数 给定一个参数N返回是不是可以表示成若干连续正数和的数 判断num是不是2的某次方 (num (num - 1)) 0是2的某次方(num (num - 1)) !0不是2的某次方
矩阵处理
矩阵特殊轨迹问题 宏观调度法 示例1zigzag打印矩阵 将打印轨迹进行分解实际是每次打印一条A点和B点之间的斜线
void printMatrixZigZag(vectorvectorint matrix) {// 打印斜线auto print_bias [matrix](int Ar, int Ac, int Br, int Bc, bool direction) {if(direction) {while(Ar!Br1) {cout matrix[Ar][Ac--] ;}}else {while(Br!Ar-1) {cout matrix[Br--][Bc] ;}}};// 主函数部分int Ar 0;// A点和B点的坐标int Ac 0;int Br 0;int Bc 0;int endR matrix.size()-1; // 边界int endC matrix[0].size()-1;bool fromUp false;while(Ar ! endR1) { // 结束条件A的行坐标为下边界值1print_bias(Ar,Ac,Br,Bc,fromUp);Ar AcendC?Ar1:Ar; // A点到最后一列时Ar开始下移Ac AcendC?Ac:Ac1; // A点没到最后一列时Ac右移Bc BrendR?Bc1:Bc; Br BrendR?Br:Br1;fromUp !fromUp; // 方向交叉}
}示例2转圈打印矩阵 子过程每次顺时针打印一圈
templatetypename T
void pirntEdage(std::vectorstd::vectorT my_matrix, int tR, int tC, int dR, int dC) {if (tR dR) { // 行相同for (int i tC; i dC; i) {std::cout my_matrix[tR][i] ,;}} else if (tC dC) { // 列相同for (int i tR; i dR; i) {std::cout my_matrix[i][tC] ,;}} else { // 打印四条边int curR tR;int curC tC;while (curC ! dC) {std::cout my_matrix[tR][curC] ,;curC;}while (curR ! dR) {std::cout my_matrix[curR][dC] ,;curR;}while (curC ! tC) {std::cout my_matrix[dR][curC] ,;--curC;}while (curR ! tR) {std::cout my_matrix[curR][tC] ,;--curR;}}
}templatetypename T
void spiralOrderPrint(std::vectorstd::vectorT my_matrix) {int tR 0;int tC 0;int dR my_matrix.size() - 1;int dC my_matrix[0].size() - 1;while (tR dR tC dC) {pirntEdage(my_matrix, tR, tC, dR--, dC--);}
}示例2原地旋转正方形矩阵 子过程每次旋转一层
void Rotate(vectorvectorint matrix) {// 旋转一圈auto rotate_edge [matrix](int a, int b, int c, int d){int tmp 0;// 每一圈一共执行d-b次// 每次顺时针交互对应的四个元素for (int i 0; i d-b; i) {tmp matrix[a][bi];matrix[a][bi] matrix[c-i][b];matrix[c-i][b] matrix[c][d-i];matrix[c][d-i] matrix[ai][d];matrix[ai][d] tmp;} };// 主逻辑int a 0;int b 0;int c matrix.size()-1;int d matrix[0].size()-1;while (a c) {rotate_edge(matrix, a, b, --c, --d);}
}少年我观你骨骼清奇颖悟绝伦必成人中龙凤。 不如点赞·收藏·关注一波 点此跳转到首行↩︎
参考博客
转圈打印矩阵 待定引用 待定引用 待定引用