zoukankan      html  css  js  c++  java
  • 《Cracking the Coding Interview》——第8章:面向对象设计——题目6

    2014-04-23 22:57

    题目:实现一个数据结构来表示拼图游戏中的碎片。

    解法:一个拼图块儿有四条边,每边只有凹凸平三种情况,当两块碎片拼接的时候,分为四个方向进行,块儿上的图案肯定也是判断是否能拼接的依据之一。所以就有了以下的表示方法,又一题做得云里雾里。话说这种题目在面试时如果真遇到,得写到什么程度的代码才算及格?

    代码:

     1 // 8.6 Design data structure to represent pieces in jigsaw puzzle. If possible please design an algorithm to solve it.
     2 // I'll use the struct below to represent a piece, which has four sides, each one of which is either concave, convex or plain.
     3 // And they must have some patterns on them, which can be considered as images.
     4 // Solving a jigsaw can be done with DFS, which can be O(n!) in time scale, where n is total number of pieces.
     5 // A possibl way is to do it in diagonal manner, starting from the left top corner.
     6 // Like this:
     7 // 0 1 2 3
     8 // 1 2 3 .
     9 // 2 3 ...
    10 // 3 .....
    11 // When doing the search, you have to check if a piece can be fit into a targetted position.
    12 // a method fitsWith() will be used, parameters will included two pieces and a direction.
    13 // For example, fitsWith(piece1, piece2, BOTTOM) means if piece2 fits on the bottom of piece1.
    14 struct JigsawPuzzlePiece {
    15     // left, top, right, bottom
    16     // -1 for concave, +1 for convex, 0 for plain
    17     int side[4];
    18     Image *image;
    19 };
  • 相关阅读:
    tp5 上传视频到七牛云
    PHP实现打印出库单,有没有实现过?
    PHP如何输出合并单元格的表
    <> 是不等号的意思
    laravel中不使用 remember_token时退出报错,如何解决?
    Pyhton 单行、多行注释方法
    我的arcgis培训照片3
    空间分析及应用案例高级培训班培训照片2
    空间分析及应用案例高级培训班培训照片1
    2013年arcgis培训
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3684272.html
Copyright © 2011-2022 走看看