start

oracle 中 Start with...connect by 的用法(递归查询)

半城伤御伤魂 提交于 2019-11-26 15:40:39
这几个关键字是查询递归数据的,形成一个树状结构。目前只有oracle支持,其他数据都要结合存储过程实现 语法:   select * from some_table [where 条件1] connect by [条件2] start with [条件3]; 其中 connect by 与 start with 语句摆放的先后顺序不影响查询的结果,[where 条件1]可以不需要。 [where 条件1]、[条件2]、[条件3]各自作用的范围都不相同: [where 条件1]是在根据“connect by [条件2] start with [条件3]”选择出来的记录中进行过滤,是针对单条记录的过滤, 不会考虑树的结构; [条件2]指定构造树的条件,以及对树分支的过滤条件,在这里执行的过滤会把符合条件的记录及其下的所有子节点都过滤掉; [条件3]限定作为搜索起始点的条件,如果是自上而下的搜索则是限定作为根节点的条件,如果是自下而上的搜索则是限定作为叶子节点的条件; 看下面的例子 TEST 表 EMPNO ENAME DPT MAR SAL 0075 XU D1 0082 3000 0082 BAO D1 0096 4000 0096 ZHAO D2 NULL 5000 0111 MU D2 0082 4000 0056 ZHANG D3 0111 3000 0923 WANG D3

[leetcode]3. Longest Substring Without Repeating Characters

旧城冷巷雨未停 提交于 2019-11-26 05:33:59
class Solution { public int lengthOfLongestSubstring(String s) { int [] map = new int[128]; int len = Integer.MIN_VALUE; int start = 0; int end = 0; while(end < s.length()){ int c = s.charAt(end); if(map[c] == 0){ map[c]++; if(end - start + 1 >= len){ len = end - start + 1; } end++; } else{ map[s.charAt(start)] = 0; start++; } } if(len == Integer.MIN_VALUE) return 0; return len; } } 来源: https://blog.csdn.net/weixin_36869329/article/details/98762669

LeetCode#131.分割回文串

点点圈 提交于 2019-11-26 00:47:39
分割回文串:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 分析:首先要用动态规划来标记出回文子串的位置,dp[i][j]=true表示字串i到j是回文。因此动态规划判断时候是用的 dp[i][j] = (s[i] == s[j]) && (len<3 || dp[i+1][j-1]) 表示当len<3时候只需要判断两个端点,其他时候还要判断中间是否是回文子串。 然后使用回溯法来进行划分,start从0开始,然后判断start到j是否是回文,如果是的话就递归划分剩下的串,回溯后就把刚刚添加进去的子串给pop出来,继续判断下一个j即可 class Solution { public: //bool dp[200][200]; vector<vector<string>> partition(string s) { //先用动态规划的方法来确定每个位置上是否是回文子串 int n = s.size(); vector<vector<string>> ret; vector<string> currVec; vector<vector<bool>> dp(n,vector<bool>(n,false)); //vector<vector<bool>> dp; //得到每个段是否是回文子串 for(int len=1;len<=n;len