矩阵和链表的几个题目

猫狗队列问题

  1. 题目描述如图: 猫狗队列题目.
  2. 猫狗队列代码.

转圈打印矩阵(matrix)

  1. 题目: 给定一个矩阵,请你按照顺时针转圈的方式打印它,如图: 转圈打印题目

  2. 如下:

     1   2  3  4
     5   6  7  8
     9  10 11 12
     13 14 15 16		
     打印结果应该为:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10. 
    
  3. 这类似的题目不能去想如何由第一个下标变成第二个下标,然后第二个下标如何变成第三个下标这样子,这样子会贼难写,而且边界还很容易出错.

  4. 正确思路:用一种宏观的感觉,找到矩阵的左上角位置(a,b),和右下角下标(c,d),我们通过a,b,c,d四个点可以确定一个框,这个框正是我们要打印的一圈, 如图: 思路图.

  5. 转圈打印矩阵代码.

将二维数组旋转90°然后输出

  1. 例子:

     原数组:
     	1 2 3
     	4 5 6
     	7 8 9
     转换后的数组:
     	7 4 1
     	8 5 2
     	9 6 3
    
  2. 思路:和上面一样,用一种宏观的思路,给定左上角和右下角的坐标位置,先转外面一圈,然后转里面一圈,直到左上角元素坐标大于右下角坐标为止,不过这种题就有点扣边界,反正我做这种题就很难受,可能因为我逻辑思维太差了吧.

  3. 旋转二维数组代码.

之字形打印矩阵

  1. 题目: 之字形打印矩阵.
  2. 示例: 之字形打印矩阵示例.
  3. 思路: 之字形打印矩阵思路.
  4. 之字形打印矩阵代码.
  5. 注意: 暂时不变的放在前面,免得暂时变化的会影响,比如这题中的左上角的行要放在列的后面!!!不然会搞死人的.

反转链表

这个博客的图画的巨好,巨容易懂,也算是夏天的一丝清凉,真的是要热死了: 理解反转链表

  1. 题目: 输入一个链表,反转链表后,输出新链表的表头, 链表倒序题目

  2. 反转链表代码.

在行列都排好序的矩阵中找数

  1. 题目: 在行列都排好序的矩阵中找数.
  2. 思路:
    1. 注意这里的行和列都是从小到大有序的.
    2. 先确定右上角A的坐标(左下角也行,其实四个角都行,看你自己,这里以右上角为例),然后判断和要找的元素的大小.
      1. A比目标元素大,就左移.
      2. A比目标元素小,说明A这个元素左边的都比目标元素小,就往下走.
      3. 总的来说,就是大就往左移,小就往下移,最后还没有就返回false.
  3. 在行列都有序的矩阵中找目标值代码.

打印两个有序链表的公共部分

  1. 思路: 可以理解为归并排序的归并部分执行的行为.
  2. 打印有序链表公共部分代码.

判断一个链表是否为回文结构

  1. 题目: 判断一个链表是否为回文结构代码.
  2. 最难理解的就是两个逆序的过程,多想想画一画,我反正这个题搞了我一上午.
  3. 判断一个链表是否为回文结构代码.

将单向链表按某值划分成左边小, 中间相等, 右边大的形式

单向链表给定值排序.

  1. 第一问:
    1. 思路: 类似荷兰国旗,因为第一问不要求稳定性,所以我们可以把单向链表放在一个数组中,然后在数组中排好序以后,再转化为链表形式.
    2. 将链表存放在数组中代码.
    3. 此时时间复杂度和额外空间复杂度都为O(N).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值