剑指Offer——当当+搜狐+好未来笔试题+知识点总结

情景回想

  • 时间:2016.9.21 15:00-21:00
  • 地点:山东省网络环境智能计算技术重点实验室
  • 事件:当当笔试、搜狐笔试、好未来笔试

    3场笔试中好未来相对简单点。

好未来编程题

马踏棋盘(贪心算法)

  马踏棋盘是经典的程序设计问题之中的一个,基本的解决方式有两种:一种是基于深度优先搜索的方法,还有一种是基于贪婪算法的方法。第一种基于深度优先搜索(DFS)的方法是比較经常使用的算法,深度优先搜索算法也是数据结构中的经典算法之中的一个。主要是採用递归的思想。一级一级的寻找,最后找到合适的解。而基于贪婪的算法则是根据贪婪算法的思想设置一种标准。然后根据标准进行选择,从而得到解。可是他不一定可以得到最优解。

  关于马踏棋盘的基本过程:国际象棋的棋盘为8*8的方格棋盘。

现将”马”放在随意指定的方格中,依照”马”走棋的规则将”马”进行移动。要求每一个方格仅仅能进入一次。终于使得”马”走遍棋盘的64个方格。

  深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止。并且每一个节点仅仅能訪问一次.(来自百度)基于深度优先搜索的算法就是根据当前点找到下一个可能的点,然后对这个点进行深度优先搜索,然后依次递归,当出现条件不满足时,退回来,採用其它的路径进行搜索。最后肯定可以得到相应的结果。

  贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说。不从总体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对全部问题都能得到总体最优解,但对范围相当广泛的很多问题他能产生总体最优解或者是总体最优解的近似解。(来自百度)

  本题与经典的马踏棋盘问题的差别就是点可以反复走。

给定两点,推断是否走得通,并记录某次走通的路径。

package cn.edu.ujn.practice;

/**
* 贪心算法解决马踏棋盘问题
* 棋盘有64个位置,“日”字走法,刚好走满整个棋盘
* @author SHQ
* @date 2016-09-22
*/
public class HorseStep {
static final int[] dx = { -1, -2, -2, -1, 1, 2, 2, 1 }; // x方向的增量
static final int[] dy = { 2, 1, -1, -2, -2, -1, 1, 2 }; // y方向的增量
static final int N = 8;
static int[][] board = new int[N][N]; // 棋盘

// 计算结点出口
int waysOut(int x, int y) {
int tx, ty;
int count = 0;
// 结点位置非法或已踏过,返回-1
if (x < 0 || y < 0 || x >= N || y >= N || board[x][y] > 0) {

posted @
2017-08-16 15:54 
zsychanpin 
阅读(...) 
评论(...) 
编辑 
收藏

剑指Offer——当当+搜狐+好未来笔试题+知识点总结的更多相关文章

  1. 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结

    剑指Offer--腾讯+360+搜狗校招笔试题+知识点总结 9.11晚7:00,腾讯笔试.选择题与编程.设计题单独计时. 栈是不是顺序存储的线性结构啊? 首先弄明白两个概念:存储结构和逻辑结构. 数据 ...

  2. 2019 搜狐java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.搜狐等公司offer,岗位是Java后端开发,因为发展原因最终选择去了搜狐,入职一年时间了,也成为了面试官,之 ...

  3. 面试题目——《剑指Offer》

    1.把一个字符串转换成整数——<剑指Offer>P29 2.求链表中的倒数第k个结点——<剑指Offer>P30 3.实现Singleton模式——<剑指Offer> ...

  4. 剑指offer面试题-Java版-持续更新

    最近在用Java刷剑指offer(第二版)的面试题.书中原题的代码采用C++编写,有些题的初衷是为了考察C++的指针.模板等特性,这些题使用Java编写有些不合适.但多数题还是考察通用的算法.数据结构 ...

  5. 一起来刷《剑指Offer》——不修改数组找出重复的数字(思路及Python实现)

    数组中重复的数字 在上一篇博客中<剑指Offer>-- 题目一:找出数组中重复的数字(Python多种方法实现)中,其实能发现这类题目的关键就是一边遍历数组一边查满足条件的元素. 然后我们 ...

  6. 剑指Offer——搜狐畅游笔试题+知识点总结

    剑指Offer--搜狐畅游笔试题+知识点总结 情景回顾 时间:2016.9.24 10:00-12:00 地点:山东省网络环境智能计算技术重点实验室 事件:搜狐畅游笔试   注意事项:要有大局观,该舍 ...

  7. 剑指Offer——好未来视频面知识点储备+面后总结

    剑指Offer--好未来视频面知识点储备+面后总结 情景介绍 时间:2016.10.12 13:00- 地点:宿舍 事件:好未来视频面 知识点储备 数据结构 单链表反转 public class Li ...

  8. 剑指 Offer 13. 机器人的运动范围 + 深搜 + 递归

    剑指 Offer 13. 机器人的运动范围 题目链接 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2020/12/ ...

  9. 剑指 Offer 12. 矩阵中的路径 + 递归 + 深搜 + 字符串问题

    剑指 Offer 12. 矩阵中的路径 题目链接 题目类似于迷宫的搜索. 需要注意的是,需要首先判断起始搜索的位置,可能有多个起点,都需要一一尝试. 每轮迭代的时候记得将是否遍历标记数组还原为未遍历的 ...

随机推荐

  1. 【转载】目前主流过滤XSS的三种技术

    目前主流过滤XSS的三种技术 过滤 过滤,顾名思义,就是将提交上来的数据中的敏感词汇直接过滤掉.例如对"<script>"."<a>". ...

  2. python是如何进行内存管理的

    Python引入了一个机制:引用计数. python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时, ...

  3. Struts2知识整理

    准备找工作了.好忐忑!!! 整理整理知识,好好准备. 其实现在Struts2好像不是特别流行,不过还是有用武之地的. struts2简介 struts2是基于mvc开发模型的框架,属于表现层框架 核心 ...

  4. 我在学JavaScript中的循环

    for (var num1 = 1;num1 < 10;num1++ ){ for (var num2 = 1;num2< 10;num2++ ){ console.log(num1+'* ...

  5. C#对注册表的操作

    C#中提供的与注册表相关的最主要的是两个类: Registry 和 RegistryKey,这两个类属于Microsoft.Win32命名空间 Registry类包含5个公共的静态域,分别代表5个基本 ...

  6. HDnoip2017题解

    那么,作为一名初入信息竞赛的选手,我也试着开始用博客记录自己的学习历程,那么这篇文章先简单介绍一下我自己吧. 本人开始学习信息学大概以来,主要都是用的C++,所以对其他语言并不是十分熟悉.2016我还 ...

  7. MySQL执行一个查询的过程

    总体流程 客户端发送一条查询给服务器: 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段: 服务器端进行SQL解析.预处理,再由优化器生成对应的执行计划: MyS ...

  8. Liunx find的运用

    find命令 一.根据 -name 查找 find[搜索范围][搜索条件] find /root -name a1 若是模糊查询,则使用通配符 *匹配任意字符{find /root -name &qu ...

  9. KingView 6.53漏洞学习研究

    类别:堆溢出 描述:此漏洞存在于KingView6.53软件的HistorySvr.exe进程中,这个软件服务程序在TCP 777端口监听时收到一个超长请求,导致堆缓冲区溢出从而执行任何代码. 参考资 ...

  10. SpringMVC 视图解析器

    SpringMVC 视图解析器 还记得SpringMVC 快速入门中,dispatcher-servlet.xml 配置的视图解析器么.它是SpringMVC 的核心知识点.本章节比较简单,明白视图解 ...