2018年1月28日

摘要: Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the leng 阅读全文

posted @ 2018-01-28 22:52 Unkn0wnnnnn 阅读(161) 评论(0) 推荐(0)

摘要: Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]. 刚拿到题目一脸懵逼,脑袋里唯一的思路就是对该数组进行一个嵌套循环的操作,设置一个下标i并写一 阅读全文

posted @ 2018-01-28 22:24 Unkn0wnnnnn 阅读(127) 评论(0) 推荐(0)

摘要: 手写strcpy的函数的整体思想其实比较简单,一次遍历字符串进行复制就好,源码如下: 对于strcat函数也仅仅是指针位置移动到字符串'\0'位置的前一位后,再次进行一个类似于字符串复制的操作即可,具体源码如下: 而对于memcpy函数则需要额外考虑两个字符串有一个地址重叠的情况。具体实现源码如下: 阅读全文

posted @ 2018-01-28 01:09 Unkn0wnnnnn 阅读(750) 评论(0) 推荐(0)

摘要: 建堆过程其实也很简单,以堆的Heap/2开始进行一个子节点与左右节点的比较,建立大堆则根节点为最大,左子节点大于右子节点,小堆则反之。具体实现代码如下: 实现最小堆的过程则是针对判定条件进行改变即可。这里进行省略(其实就是太懒了) 阅读全文

posted @ 2018-01-28 00:42 Unkn0wnnnnn 阅读(224) 评论(0) 推荐(0)

2018年1月27日

摘要: 整体思路很简单,通过判断一个根节点是否有左右子节点,如果有,则进行交换。通过递归调用用自身即可。 阅读全文

posted @ 2018-01-27 16:27 Unkn0wnnnnn 阅读(127) 评论(0) 推荐(0)

摘要: 逆序打印链表可以将层序打印二叉树的思路做一个借鉴和对比,整体思想都是找一个容器将每一个节点都装起来,再根据这个容器的特性将每一个节点输出出来,顺序遍历第一个想到的容器则是队列,而逆序打印所能够想到的就是与之对应的栈。具体实现源码如下: /*** struct ListNode {* int val; 阅读全文

posted @ 2018-01-27 16:14 Unkn0wnnnnn 阅读(100) 评论(0) 推荐(0)

摘要: 既然是层序打印的顺序,思路想到的第一个想法就是,先来先打印,后来后打印,所以以这个思路来看的话可以使用一个队列来一次存储二叉树中的每一个节点,而后依次出列,按照这个思路就可以轻松的层序遍历的方式打印出二叉树,具体实现源码如下: 阅读全文

posted @ 2018-01-27 16:02 Unkn0wnnnnn 阅读(119) 评论(0) 推荐(0)

摘要: 链表反转的方法有很多,自己的思路可以大致归为亮点,第一种是采用头插法从头到尾进行操作,这样的方法采用的是一种非递归的方式。具体源码如下: 与此同时相对于头插法这样的非递归方式实现的方法,可以考虑采用从尾部进行操作的方式,这样可以使用一种递归的方式来实现,具体源码如下: 阅读全文

posted @ 2018-01-27 15:42 Unkn0wnnnnn 阅读(128) 评论(0) 推荐(0)