随笔分类 - 编程题
摘要:前言 回溯算是一种选优搜索法,又称为试探法。按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择目标并不优或达不到目标,就退回一步重新选择。这种走不通再退回回走的技术称为回溯法。满足回溯状态的点称为回溯点。 回溯法 采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它
阅读全文
摘要:前言 之前刷的题让我感觉很分散,这次就用集中突破的方式,我觉得这种方式,应该比较容易掌握这方面的知识,再不济,这种思想也能让我在对待难题时,有一定的思路。 技巧 答案 第一步骤:定义数组元素的含义,上面说了,我们会用一个数组,来保存历史数组,假设用一维数组 dp[] 吧。这个时候有一个非常非常重要的
阅读全文
摘要:前言 经验 正文 1. 两数相加 题目 code 答案 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(null
阅读全文
摘要:前言 技巧 前序/后序+中序序列可以唯一确定一棵二叉树。递归建树。 正文 1. 按之字形顺序打印二叉树 code 答案 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int
阅读全文
摘要:前言 这里就专门放一些编程题。 正文 技巧 leetcode 上判定指针是否为空,统一用:if(head!=NULL) 而不用if(!head)这个!head本身就是错的啊,那就意味着这个head要等于NULL,才能进去,这不是有毛病吗。 再强调一遍. 计算链表的长度使用这样的方式: code in
阅读全文