`
blue2048
  • 浏览: 184461 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
1) 没有查询条件,或者查询条件没有建立索引  2) 在查询条件上没有使用引导列  3) 查询的数量是大表的大部分,应该是30%以上。  4) 索引本身失效 5) 查询条件使用函数在索引列上,或者对索引列进行运算,运算包括(+,- ...
什么是回溯法? 回溯法的通用框架 利用回溯法解决问题 问题1:求一个集合的所有子集 问题2:输出不重复数字的全排列 问题3:求解数独——剪枝的示范 问题4:给定字符串,生成其字母的全排列 问题5:求一个n元集合的k元子集 问题6:电话号码生成字符串 问题7:一摞烙饼的排序 问题8:8皇后问题 总结与探讨 附:《算法设计手册》第7章其余面试题解答
跟word break 相比,该题需要输入具体的方案 步骤如下 1. 使用map,存储第k个位置之前的字符串,所有的单词划分方案 2. 修剪分支,将一些不符合完全划分的单词除去 3. 遍历,获得所有符合条件的方案   public class Solution { public List<String> wordBreak(String s, Set<String> dict) { Map<Integer, List<Integer>> pMapALL = new HashMap<Integ ...
dp解决方案,状态转移方程 f[i]代表字符串第i位能否被分割 f[i]=(f[j]&&s.substring(j+1,i+1))||(f[j]&&s.substring(j+2,i+1))||...      public class Solution { public boolean wordBreak(String s, Set<String> dict) { boolean[] f = new boolean[s.length()]; for(int i =0; i<s.leng ...
  1、问题描述   已知:有一个容量为V的背包和N件物品,第i件物品的重量是weight[i],收益是cost[i]。 条件:每种物品都有无限件,能放多少就放多少。 问题:在不超过背包容量的情况下,最多能获得多少价值或收益 举例:物品个数N = 3,背包容量为V = 5,则背包可以装下的最大价值为40. ----------------------------------------------
  步骤: 1. 选中Java项目工程名称,在菜单中选择 File->project structure... (快捷键Ctrl+Alt+Shift+S)。   2. 在弹出的窗口中左侧选中"Artifacts",点击"+"选择jar,然后选择"from modules with dependencies"。   3. 在配置窗口中配置"Main Class"。
很多网上的算法指根据结论倒推出a=c这样的结论,是错误的! 这道题比较注重数学推到,  如图,设置快慢两个指针,快指针的速度是慢指针的两倍 假设两个指针在z点相遇,那么快指针所走过的距离是慢指针的两倍 那么有以下公式,其中n代表快指针在环内转了n圈后行走b距离与慢指针相遇 2*(a+b)= a + b + n*(b+c)  ====> a = (n-1)(b+c) + c 由这个推到结果可以知道,a的长度为n-1个环的长度加上c的长度 那么得出结论,相遇后,慢指针从链表头重新开始,快指针的速度和满指针一样继续前行,必然会在Y点相遇,相遇时快指针可能已经沿环转了多圈   ...
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public boolean hasCycle(ListNode head) { if(head == null){ ...
注意以下几点 1. 传入为空   由于题目要求比较宽泛,所以采用以下两种方式解答 1. 用空间降低复杂度,使用list存储,借助数组编号寻址,重组链表 /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solutio ...
注意以下几点 1. 输入为null时,返回空list,题目没有说   /** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> preorderTraversal(TreeNode ro ...
注意以下几项 1. 输入若为NULL,返回空列表,而不是NULL,题目没有说清楚   /** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> postorderTraversal(Tr ...
注意一下几项 1. 借助linklist动态储存key的使用情况,将每次使用的key对应的节点变化到链表尾部,0位置为最少使用的key 2. 题目对时间复杂度有要求,linklist获得某个key,需要用O(1)的map查找,而是O(n)的循环查找 3. 根据以上两个条件,需要实现map+linklist的数据结构,linklist存储键值和最少用到的key,map根据key找到list对应的节点       public class LRUCache { private Map<Integer, Node> map; private ...
注意以下几项 1. 题目没有说按从小打到排序 2. 排序的时候需要判断前驱为空,后继为空的情况   /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListN ...
注意一下几项 1. nlogn时间复杂度,稳定的算法是堆排序和归并排序 2. 常数地址空间,堆排序不合适,考虑归并排序的变种 3. 注意链表查找中间节点的小算法   /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class ...
注意以下项 1. 空字符串也是回文   public class Solution { public boolean isPalindrome(String s) { if(s.equals("")){ return true; } s = s.toLowerCase(); StringBuilder clearStr = new StringBuilder(); for(int i=0; i<s.length(); i++){ ...
Global site tag (gtag.js) - Google Analytics