目录

写在开头

第3章 排序与查找

3.1 排序

总结

3.2 查找

总结


写在开头

一刷到后面断更了,发现每题都写太浪费时间了。

一刷总结:数学问题、贪心、递归分治、数据结构二基本都刷完了,图论只刷了并查集和最小生成树,动态规划只刷了0-1背包,搜索勉强能看懂,基本写不出。大致看了一下目标院校的机试真题,对我现在的水平来说还是有点难orz,机试4题可能勉强才能做出1道吧。0A肯定是过不了复试的,目标:保1争2,确保常规题做出来。

二刷计划:一眼就看出解法的不敲了,思路不清楚的重新敲一遍。把不记得的重点记下来。计划一天一章+总结。

第3章 排序与查找

3.1 排序

排序_牛客题霸_牛客网 (nowcoder.com)

成绩排序_牛客题霸_牛客网 (nowcoder.com)

成绩排序_牛客题霸_牛客网

特殊排序_牛客题霸_牛客网

整数奇偶排序_牛客题霸_牛客网

总结

1、把几个比较重要的排序算法(冒泡、快排、堆排序)基本思想再过一遍,面试可能会问;

2、题目不是考排序的话直接调用algorithm库中的sort函数排序,注意sort函数不稳定,要稳定排序就调用stable_sort函数;

3、包含的信息比较多时考虑用结构体;

4、二刷这五题基本都是一遍AC。

3.2 查找

找x_牛客题霸_牛客网 (nowcoder.com)

查找_牛客题霸_牛客网

找最小数_牛客题霸_牛客网

打印极值点下标_牛客题霸_牛客网

总结

1、查找最常用的一种思路:暴力查找,数据量不大的时候基本都能过;

2、数据量大时用二分查找能把时间复杂度降到logN,注意二分查找的循环条件,容易写错。

刷点经典题强化一下。

寻找峰值_牛客题霸_牛客网 (nowcoder.com)

1、直接暴力查找,修改之后测试用例只能通过15/22 。

2、二分查找法

(1)思路:题目将数组边界看成最小值,只需要找到其中一个波峰,因此只要不断地往高处走,一定会有波峰。每次找一个标杆元素,将数组分成两个区间,每次就较高的一边走,因此也可以用分治来解决,而标杆元素可以选择区间中点。

(2)具体做法

  • step 1:二分查找首先从数组首尾开始,每次取中间值,直到首尾相遇
  • step 2:如果中间值的元素 > 它右边的元素,说明往右是向下,不一定会遇到波峰,往左收缩区间。
  • step 3:如果中间值 < 右边的元素,说明往右是向上,向上一定能有波峰,往右收缩区间。
  • step 4:最后区间首尾相遇的点一定就是波峰。

(3)源代码

class Solution {public:int findPeakElement(vector<int>& nums) {int left = 0, right = nums.size() - 1, mid;while (left < right) {mid = (left + right) / 2;// 二分中点右边是往上的趋势if (nums[mid] < nums[mid + 1]) // 这里我一开始写的是nums[mid] < nums[right],也能Aleft = mid + 1 ;elseright = mid;}// 循环结束left=rightreturn left;}
};

二分查找-I_牛客题霸_牛客网 (nowcoder.com)

第一次分支判断条件写错了,最重要的跳出target == nums[mid] 没写;第二次发现循环条件不完整,应该是low <= high,而不是 low < high 。(只有二分查找中是小于等于)改了之后全部AC了。

class Solution {
public:int search(vector<int>& nums, int target) {int low = 0,high = nums.size() - 1,mid;while(low <= high) { // 别漏了等于号mid = (low + high) / 2;if(target == nums[mid])  // 找到targetreturn mid;else if(target < nums[mid]) // target < nums[mid]high = mid - 1; // 在左半区间继续查找else low = mid + 1;}return -1; // 没找到返回-1}
};

二维数组中的查找_牛客题霸_牛客网 (nowcoder.com)

1、暴力解法:遍历一遍矩阵,可以AC。

2、二分搜索:从一行开始使用二分查找,一直到最后一行。(发现这种方法比暴力耗时高)

3、线性搜索(开眼界了):利用二维数组行列递增特性

  1. 由于行列递增,可以得出:
    a.在一列中的某个数字,其上的数字都比它小
    b.在一行中的某个数字,其右的数字都比它大
  2. 搜索流程:
    a.首先从数组左下角搜索.
    b.如果当前数字大于target,那么查找往上移一位,如果当前数字小于target,那么查找往右移一位。
    c.查找到target,返回true; 如果越界,返回false;
class Solution {public:bool Find(int target, vector<vector<int> > array) {int row = array.size(); // 行数int col = array[0].size();  // 列数int i = row - 1, j = 0; // 从左下角开始while (i >= 0 && j < col) { if (target == array[i][j]) {return true;} else if (target > array[i][j]) { // target > array[i][j],向右走j++;} else {// target < array[i][j],向上走i--;}}return false;}
};

王道计算机考研机试指南二刷笔记-自用8相关推荐

  1. 王道论坛计算机考研机试指南怎么样,王道论坛计算机考研机试指南 二 日期类问题...

    二日期类问题 例2.3 日期差值 (九度教程第6题) 时间限制:1秒 **内存限制:32兆 ** 特殊判题:否 题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数 ...

  2. 王道计算机考研机试指南刷题笔记-自用7

    目录 例题4.4 统计字符(浙大复试上机题) 例题4.5 字母统计(上交复试上机题) 第5章 数据结构一 5.1 向量 例题5.1 完数与盈数(清华复试上机题) 5.2 队列 例题5.2 约瑟夫问题N ...

  3. 王道计算机考研机试指南刷题笔记-自用

    | 写在开头 前两周磨磨唧唧把第二章暴力求解枚举部分的例题和习题都AC了,思路都不太难,找到规律很快就能写出来,想着一定要写刷题笔记,把coding时遇到的困难都记录下来,方便以后复习,却也一直未曾动 ...

  4. 王道计算机考研机试指南自用刷题笔记-自用6

    目录 习题3.5 找最小数(北邮复试上机题) 习题3.6 打印极值点下标(北大复试上机题) 习题3.7 找位置(华科复试上机题) 第4章 字符串 4.1 字符串 4.2 字符串处理 4.1 特殊乘法( ...

  5. 王道计算机考研机试指南刷题笔记-自用3

    | 2.2 模拟 3.其他模拟 例题2.9 KY25(清华大学复试上机题) 剩下的树__牛客网 (nowcoder.com) 1.总结 遇到的坑:直接把给出的区间右端点值减去左端点值+1得到这个区间移 ...

  6. 王道计算机考研机试指南自用刷题笔记-自用5

    3.2 查找 例题3.4 找x(哈工大复试上机题) 找x_牛客题霸_牛客网 (nowcoder.com) 1.思路 简单题,定义一个数组存储输入的数字,定义一个flag标识是否找到x,对数组进行一次遍 ...

  7. 王道出版的机试指南_《王道论坛计算机考研机试指南》试读版.pdf

    <王道论坛计算机考研机试指南>试读版 王道论坛 王道论坛计算机考研机试指南 王道论坛 2013.01.06 写在前面的话 各位王道的小崽子们,今天你们考完初试了,感觉解放了吧?轻松了吧?无 ...

  8. 计算机考研机试指南(八)——数学问题

    机试指南 cha4 数学问题 % 1 #include <iostream> 2 #include <stdio.h> 3 #include <stdlib.h> ...

  9. 王道出版的机试指南_王道论坛计算机考研机试指南 四 排版题

    例2.7 输出梯形 (九度教程第14题) 时间限制:1秒 **内存限制:32兆 ** 特殊判题:否 题目描述: 输入一个高度h,输出一个高为h,上底边为h的梯形. 输入: 一个整数h(1<=h& ...

最新文章

  1. Oracle 10g 之自动收集统计信息
  2. 查看java内存_怎么查看java虚拟机存储空间使用情况
  3. ES什么时候会平衡分片
  4. mysql面试100题及答案_PHP面试100题汇总
  5. Python打包 pyinstaller
  6. mongodb 总结
  7. php防撞库,叉车防撞预警系统的必要性
  8. 【BZOJ2243】[SDOI2011]染色 树链剖分+线段树
  9. linux结构体大小端,【转】位结构体+大小端模式
  10. 代码整洁之道(二)优雅注释之道
  11. 思杰VDI外篇XDDC安装
  12. 远程桌面无法连接方案
  13. Thinkphp双轨直销系统源码
  14. 微信公众号扫码登录(一)—— 获取微信公众号二维码
  15. Android 调用 系统选择器 选择 图片 或 文件(ACTION_PICK、ACTION_GET_CONTENT)
  16. 全能修图工具:Pixelmator Pro for Mac
  17. 实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入。然后根据身份证号码输出20岁生日所在周的周三的日期
  18. 编程之美 - 中国象棋将帅问题
  19. 鲁宾逊与莱布尼兹(修改版)
  20. 冈萨雷斯《数字图像处理》学习笔记(六)彩色图像处理

热门文章

  1. 卷积神经网络:汇聚层
  2. 磁盘挂载、ECS数据盘挂载、云服务器磁盘挂载
  3. 水滴数据建设实践及思考:2大关键问题,4大破局措施
  4. ex20 函数和文件
  5. 免费分享6个资源搜索网站,不怕资源搜不到,没多少人知道这些
  6. 大数据电视采集离线项目
  7. VA屏和IPS屏有什么区别呢?
  8. 使用TCP RFC 1323进行Windows XP网络性能优化
  9. 安全、稳定的工业蜂窝路由器具有怎样的特性?
  10. 学习通作业 第八章二测(2022.5.22 23:59:00截止)