剑指offer刷题思路拓展精讲
用最清晰的思路手撕代码,助力新手拿到心动offer
浅亦予
码农进阶中
展开
-
剑指offer——替换空格
然后遍历一次,复制,当遍历的地方不为空格时,直接复制原始证据,当为空格时,则把%20三个字符复制上去。复制的时候从后面往前面开始复制,这样就可以节省一定空间,直接在原来的数组上操作。同时可以使用C++的原地扩容方法,扩容后直接在原始数组上按照从右往左的方法,将数组复制进来,并在遍历到空格时,用%20来代替复制的位置,提高了时空复杂度。1、是采样两个常规方法,分别调用java自带的函数,直接实现替换功能。是采用C++自带的扩容方法,将字符串转换成数组,遍历一次,统计出空白格的个数,构建新的数组,使。原创 2024-01-20 08:00:00 · 321 阅读 · 0 评论 -
剑指offer——二维数组中的查找(从左下角开始比较)
4、第一轮比较过后,如果是1、2两种情况,则需要继续进行比较,此时依旧采用左下角的值与目标值target进行比较,以此类推,直至出现3的情况为止,这样比较过后,该二维数组的查找就结束啦。依题可知,该二维数组是一个从左到右,从上到下的一个有序数组,所以,当我们假设有一个3×3的矩阵时,左下角的值一定比它所在的行值都小,比它所在二等列值都大。本期总结:通过题干所给的信息,采用最优解的方法来实现功能,可以大大提高查找效率,希望本次解题思路有帮助你拓展思考方向,后期还会继续更新,望大家共同探讨共同进步!原创 2024-01-19 10:27:38 · 515 阅读 · 1 评论 -
剑指offer——数组中重复的数字(下标法思路详解)
通过不停的交换元素使得元素和它对应的下标相等,即nums[i] = i。(当元素是有重复的时候,肯定会出现多个元素对应同一个下标,那这个时候就可以判断该数组中是否有重复的元素),时间复杂度为O(n)原创 2024-01-19 09:23:43 · 397 阅读 · 1 评论