面试 15:顺时针从外往里打印数字 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印每一个数字.例如输入: {{1,2,3}, {4,5,6}, {7,8,9}} 则依次打印数字为 1.2.3.6.9.8.7.4.5 这是昨天最后给大家留下的题目,相信大家也有去思考如何处理这道题目了. 初看这个题目,比较容易理解,也无需牵扯到数据结构或者高级的算法,看起来问题比较简单,但实际上解决起来且并没有想象中的容易. 大家极有可能想到循环嵌套的方式,套用几个 for 循环就可以啦. 首先打印第 1…
151. 翻转字符串里的单词 知识点:字符串:双指针 题目描述 给你一个字符串 s ,逐个翻转字符串中的所有 单词 . 单词 是由非空格字符组成的字符串.s 中使用至少一个空格将字符串中的 单词 分隔开. 请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串. 说明: 输入字符串 s 可以在前面.后面或者单词间包含多余的空格. 翻转后单词间应当仅用一个空格分隔. 翻转后的字符串中不应包含额外的空格 示例 输入:s = "the sky is blue" 输出:"blue…
这个题看似很简单: 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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. 当看到这个题目得到时候,我的第一反应是:考虑矩阵为空,只有一行,只有一列,以及一般情况m×n矩阵.这个思维很重要,让我们无法忽视很多的边界问题.!!!以后但凡是矩阵问题,首先需要考虑特殊矩阵. 其次,…
我们今天继续来看看周五留下的习题: 面试题:输入两个整数序列,第一个序列表示栈的压入顺序,请判断二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如:压入序列为{1,2,3,4,5},那{4,5,3,2,1} 就是该栈的弹出顺序,而{4,3,5,1,2} 明显就不符合要求: 这道题还是比较容易想到思路,很直观的想法就是建立一个辅助栈,把输入的第一个序列中的数字依次压入该辅助栈,并按照第二个序列的顺序依次从该栈中弹出数字. 提前想好测试用例 一样是老方法,我们先准备测试用例: 传入两个…
   字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后一位字符那仫就把该数字加1( 需要注意的是我们每次都是从最后一个字符开始加起)到这里我们就不得不考虑加法的进位了,只有当字符对应的数字加到10或者比10大时我们需要进位,否则就直接将该数字转化为字符存储到对应字符的位置中去: 在字符所转化的数字进位中不得不考虑的就是如果此时已经是第一个字符了那仫还需…
题目 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 分析 要了解链表的数据结构: val属性存储当前的值,next属性存储下一个节点的引用. 要遍历链表就是不断找到当前节点的next节点,当next节点是null时,说明是最后一个节点,停止遍历. 因为是从尾到头的顺序,使用一个队列来存储打印结果,每次从队列头部插入. 代码 /*function ListNode(x){ this.val = x; this.next = null; }*/ function printLis…
https://www.nowcoder.net/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=11156&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述 输入一个链表,从尾到头打印链表每个节点的值.   /** * struct ListNode { * int val; * s…
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString { public: CMyString(char* pData = NULL); CMyString(const CMyString & str); ~CMyString(void); private: char* m_pData; }; 分析: 赋值运算符要注意以下四点: 1.把返回值的类型声明为该类型的引用. 2.把传入的参数的类型声明为常量引用. 3.释放实例自身已有的内存. 4.判断…
题目 100 可以由 9~16, 或者 18 ~ 22 组成 思路 1. 与 Leetcode Container With Most Water 有些类似, 依然是平移题目. 但这道更加复杂 2. 初始设置 small 为 1, big 为 2 ,然后平移直到等于目标值. 到 small >= big 时结束…
方法一:采用栈来存储,用ArrayList保存.注意题目给出的输出结果是ArrayList import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { Stack<Integer> stack=new Stack<>(); ArrayLis…