<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaobailaji的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaobailaji</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaobailaji]]></copyright><item><title><![CDATA[c++中的c_str使用]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/125028441</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/125028441</guid><author>xiaobailaji</author><pubDate>Sun, 29 May 2022 11:10:52 +0800</pubDate><description><![CDATA[string s = "1234";
const char* c;
c = s.c_str();
cout &lt;&lt; c &lt;&lt; endl;

char cc[20];
strcpy(cc,s.c_str());
cout &lt;&lt; cc &lt;&lt; endl;

c_str就是将string类型的字符串转化成c语言字符串的指针常量（可读不可改变）。
可通过以上两种方式进行转化。

...]]></description><category></category></item><item><title><![CDATA[leetcode84柱状图中最大的矩形]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/123975333</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/123975333</guid><author>xiaobailaji</author><pubDate>Tue, 05 Apr 2022 19:57:14 +0800</pubDate><description><![CDATA[单调栈的应用：
用一个栈维护顺序，按照单调增或者减的顺序，一旦遇到不按照单调规律的值，就不断的弹出，直至栈顶元素和要入栈的元素满足单调关系。在这个过程中进行某种计算，最终得到想要的值。
public int largestRectangleArea(int[] heights){
        int len = heights.length;
        if (len == 0) {
            return 0;
        }
        if(len == 1){
   ]]></description><category></category></item><item><title><![CDATA[ubuntu中的查看文件命令]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/122993421</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/122993421</guid><author>xiaobailaji</author><pubDate>Thu, 17 Feb 2022 22:36:23 +0800</pubDate><description><![CDATA[1、
cat命令直接查看
2、
less与more类似，但是比more更好的是，它可以往前翻页。
空格下翻页，pageDown，pageUp键代表翻动页面！退出q命令，查找字符串/要查询的字符向下查询，向上查寻使用？要查询的字符串

...]]></description><category></category></item><item><title><![CDATA[java种的bianrySearch解析]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120205627</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120205627</guid><author>xiaobailaji</author><pubDate>Thu, 09 Sep 2021 17:20:35 +0800</pubDate><description><![CDATA[采用二分查找的时候，可直接调用java提供的api：
Collections.binarySearch()
Arrays.binarySearch()
public class demo {
    public static void main(String[] args) {
        List&lt;Integer&gt; list = Arrays.asList(1,2,3,4,6,8,10,12);
        System.out.println(Collections.binaryS]]></description><category></category></item><item><title><![CDATA[java数组与列表之间的相互转化]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120194700</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120194700</guid><author>xiaobailaji</author><pubDate>Thu, 09 Sep 2021 09:50:21 +0800</pubDate><description><![CDATA[public class demo {
    public static void main(String[] args) {
        String[] myArray = new String[]{"1","2","3","4"};
        List&lt;String&gt; list = Arrays.asList(myArray);//数组转列表
        System.out.println(list);

        String[] tmp = list.toArr]]></description><category></category></item><item><title><![CDATA[leetcode247]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120049871</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120049871</guid><author>xiaobailaji</author><pubDate>Wed, 01 Sep 2021 21:58:06 +0800</pubDate><description><![CDATA[找规律，递归操作
public class test {
    public List&lt;String&gt; number(int n){
        List&lt;String&gt; tmp = dfs(n);
        // 对0的除去操作
    }

    public List&lt;String&gt; dfs(int n){
        if(n == 0){
            List&lt;String&gt; list = new ArrayList&l]]></description><category></category></item><item><title><![CDATA[leetcode1059]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120041165</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120041165</guid><author>xiaobailaji</author><pubDate>Wed, 01 Sep 2021 15:33:10 +0800</pubDate><description><![CDATA[主要能保证所有路的终点都是同一个，并且无环（visited）
尝试所有情况，并回溯
public class test {
    public boolean leadsToDestination(int n, List&lt;List&lt;Integer&gt;&gt; list, int source, int target){
        boolean[] visit = new boolean[n];
        List&lt;List&lt;Integer&gt;&gt; m...]]></description><category></category></item><item><title><![CDATA[2021-09-01]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120036237</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120036237</guid><author>xiaobailaji</author><pubDate>Wed, 01 Sep 2021 11:43:48 +0800</pubDate><description><![CDATA[最小生成树，按照权重把边排好序，然后从小到大的构建。实时的判断是否出现环的情况，如果不存在，就把这个边加进去（用到了并查集里面的find函数）。
public class test {
    public int[] parent;

    public int minimunCost(int N, int[][] num){
        if(num.length &lt; N-1){
            return -1;
        }
        Arrays.sort(num]]></description><category></category></item><item><title><![CDATA[leetcode694]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120027271</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120027271</guid><author>xiaobailaji</author><pubDate>Tue, 31 Aug 2021 21:28:37 +0800</pubDate><description><![CDATA[用BFS和DFS进行搜索
关键点在于如何记录岛屿的图形信息？
用数组存储相对位置信息。
参考：
https://michael.blog.youkuaiyun.com/article/details/107419494

]]></description><category></category></item><item><title><![CDATA[leetcode294]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120025833</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120025833</guid><author>xiaobailaji</author><pubDate>Tue, 31 Aug 2021 20:11:41 +0800</pubDate><description><![CDATA[递归解决。
通过map进行优化。
public class test {
    private Map&lt;String, Boolean&gt; map = new HashMap&lt;&gt;();

    public boolean canWin(String s){
        if(map.containsKey(s)){
            return map.get(s);
        }
        for(int i=1; i&lt;s.length(); i.]]></description><category></category></item><item><title><![CDATA[leetcode250]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120023197</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120023197</guid><author>xiaobailaji</author><pubDate>Tue, 31 Aug 2021 17:40:48 +0800</pubDate><description><![CDATA[public class test {
    public int res = 0;
    public int checkTree(TreeNode root){
        dfs(root);
        return res;
    }

    public boolean dfs(TreeNode root){
        if(root == null){
            return false;
        }

        if(root.left =.]]></description><category></category></item><item><title><![CDATA[leetcode681]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120021600</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120021600</guid><author>xiaobailaji</author><pubDate>Tue, 31 Aug 2021 16:47:12 +0800</pubDate><description><![CDATA[暴力解法
public class test {
    public String nextClosedTime(String s){
        int[] a = new int[4];
        int[][] result = new int[256][4];
        int[] time1 = new int[256];
        int count = 0;
        int index = Integer.MAX_VALUE;
        int resu.]]></description><category></category></item><item><title><![CDATA[leetcode1167]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120017942</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120017942</guid><author>xiaobailaji</author><pubDate>Tue, 31 Aug 2021 14:54:30 +0800</pubDate><description><![CDATA[需要实时的排序，然后取出长度最短的两个进行拼接。
因此需要用到优先队列。
这里说一下优先队列的使用
public class test {
    static Comparator&lt;Integer&gt; cmp = new Comparator&lt;Integer&gt;() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2 - o1;
        }.]]></description><category></category></item><item><title><![CDATA[leetcode750]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120010759</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120010759</guid><author>xiaobailaji</author><pubDate>Tue, 31 Aug 2021 09:49:17 +0800</pubDate><description><![CDATA[遍历即可，找出对应的两行之间的都为1的个数，然后看能组成多少个矩形
public class test {
    public int count(int[][] num){
        int row = num.length;
        int col = num[0].length;
        int res = 0;
        for(int i=0; i&lt;row-1; i++){
            List&lt;Integer&gt; tmp = new A.]]></description><category></category></item><item><title><![CDATA[leetcode666]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/120006348</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/120006348</guid><author>xiaobailaji</author><pubDate>Mon, 30 Aug 2021 21:54:04 +0800</pubDate><description><![CDATA[计算和的过程就是dfs。
dfs的过程中传输到当前节点的和，判断出传递到叶节点的时候，将当前和加入到sum中。
需要用map存储每个位置对应的值。此处就涉及到堆中的一个概念：当前节点与它的左右子节点之间的索引的计算关系。以及当前节点的索引与它的深度和所在深度的位置关系。
id = 2^(depth-1) + p -1
public class test {
    Map&lt;Integer, Integer&gt; map = new HashMap&lt;&gt;();
    int sum = .]]></description><category></category></item><item><title><![CDATA[leetcode490]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/119966365</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/119966365</guid><author>xiaobailaji</author><pubDate>Sat, 28 Aug 2021 12:16:25 +0800</pubDate><description><![CDATA[注意点：遇到墙壁才能停。所以要写一个获取下个落脚点的函数。
使用BFS，关键点是判断该点是否遇到过。
public class test {
    int[][] maze;
    int[][] dir = {{0,1},{1,0},{0,-1},{-1,0}};
    public boolean hasPath(int[][] maze, int[] start, int[] destination){
        Deque&lt;int[]&gt; queue = new Arra...]]></description><category></category></item><item><title><![CDATA[二叉树前中后序的非递归遍历]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/119815744</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/119815744</guid><author>xiaobailaji</author><pubDate>Fri, 20 Aug 2021 09:11:22 +0800</pubDate><description><![CDATA[// 前序遍历
    while(root != null || !stack.isEmpty()){
        while(root != null){
            res.add(root.val);
            stack.push(root);
            root = root.left;
        }

        TreeNode cur = stack.pop();
        root = cur.right;
    }
...]]></description><category></category></item><item><title><![CDATA[leetcode555]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/119775041</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/119775041</guid><author>xiaobailaji</author><pubDate>Wed, 18 Aug 2021 10:46:29 +0800</pubDate><description><![CDATA[题意是按顺序拼接，每个字符串可翻转，遍历，比较每种情况，
public class test {
    public String splitLoopedString(String[] strs){
        int len = strs.length;

        for(int i=0; i&lt;len; i++){
            String rev = new StringBuilder(strs[i]).reverse().toString();
           .]]></description><category></category></item><item><title><![CDATA[leetcode536]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/119751476</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/119751476</guid><author>xiaobailaji</author><pubDate>Tue, 17 Aug 2021 10:48:02 +0800</pubDate><description><![CDATA[递归：
首先确定出根节点
然后确定出左右节点的字符串，把这两个字符串交给递归处理
public class test {
    public TreeNode str2tree(String s){
        if(s==null || s.length()==0){
            return null;
        }
        if(s.charAt(0)=='(' &amp;&amp; s.charAt(s.length()-1)==')'){
            .]]></description><category></category></item><item><title><![CDATA[leetcode548]]></title><link>https://blog.youkuaiyun.com/xiaobailaji/article/details/119725568</link><guid>https://blog.youkuaiyun.com/xiaobailaji/article/details/119725568</guid><author>xiaobailaji</author><pubDate>Mon, 16 Aug 2021 09:27:47 +0800</pubDate><description><![CDATA[暴力求解即可，三层遍历循环
优化的方法：
前缀数组：缩短了求和的时间
i、j、k将j作为外层循环，i和k并行的作为内部循环，减少了循环的层数，缩短了时间
public class test {
    public boolean splitArray(int[] nums){
        int len = nums.length;
        int[] prefixSum = new int[len];

        for(int i=0; i&lt;len; i++){
      .]]></description><category></category></item></channel></rss>