2025-09-24 学习日记

发布于 2025-09-24 12:00 652 字 4 min read 手写 每个字都是我自己敲的。

2025-12-24 学习日记2025-12-17 学习日记2025-12-14 学习日记2025-12-09 学习日记2025-12-08 学习日记2025-12-07 学习日记2025-12-06 学习日记2025-12-05 学习日记2025-12-04 学习日记2025-12-03 学习日记2025-12-02 学习日记2025-12-01 学习日记2025-11-30 学习日记2025-11-29 学习日记2025-11-28 学习日记2025-11-27 学习日记2025-11-26 学习日记2025-11-25 学习日记2025-11-24 学习日记2025-11-23 学习日记2025-11-22 学习日记2025-11-21 学习日记2025-11-20 学习日记2025-11-19 学习日记2025-11-18 学习日记2025-11-17 学习日记2025-11-16 学习日记2025-11-15 学习日记2025-11-14 学习日记2025-11-13 学习日记2025-11-12 学习日记2025-11-11 学习日记2025-11-10 学习日记2025-11-09 学习日记2025-11-08 学习日记2025-11-07 学习日记2025-11-06 学习日记2025-11-05 学习日记2025-11-04 学习日记2025-11-03 学习日记2025-11-02 学习日记2025-11-01 学习日记2025-10-31 学习日记2025-10-30 学习日记2025-10-29 学习日记2025-10-28 学习日记2025-10-27 学习日记2025-10-26 学习日记2025-10-25 学习日记2025-10-24 学习日记2025-10-23 学习日记2025-10-22 学习日记2025-10-21 学习日记2025-10-20 学习日记2025-10-19 学习日记2025-10-18 学习日记2025-10-17 学习日记2025-10-16 学习日记2025-10-15 学习日记2025-10-14 学习日记2025-10-13 学习日记2025-10-11 学习日记2025-10-10 学习日记2025-10-09 学习日记2025-10-03 学习日记2025-10-02 学习日记2025-10-01 学习日记2025-09-30 学习日记2025-09-29 学习日记2025-09-28 学习日记2025-09-27 学习日记2025-09-26 学习日记2025-09-25 学习日记2025-09-24 学习日记2025-09-23 学习日记2025-09-22 学习日记2025-09-21 学习日记2025-09-20 学习日记2025-09-18 学习日记2025-09-17 学习日记2025-09-16 学习日记2025-09-15 学习日记2025-09-14 学习日记2025-09-13 学习日记2025-09-12 学习日记2025-09-11 学习日记2025-09-10 学习日记2025-09-09 学习日记2025-09-08 学习日记2025-09-04 学习日记2025-09-03 学习日记2025-09-02 学习日记2025-09-01 学习日记2025-08-31 学习日记2025-08-29 学习日记2025-08-28 学习日记2025-08-27 学习日记2025-08-26 学习日记2025-08-25 学习日记2025-08-24 周记2025-08-23 学习日记2025-08-22 学习日记2025-08-21 学习日记2025-08-20 学习日记2025-08-19 学习日记2025-08-18 学习日记2025-08-17 周记2025-08-16 学习日记2025-08-15 学习日记2025-08-14 学习日记2025-08-13 学习日记2025-08-12 学习日记2025-08-11 学习日记
今日学习记录 1. 拆分合并数组leetcode.3690 关键词: 问题分析: 一开始没看到数据这么小,所以没有想到暴力,结果要搜索的范围这么小,那就是暴力搜索了,但是搜索也要技巧 核心思路 既然就是搜索,那么不要再想有什么方法去限制了,直接搜索,但是这个不是简单的全排列,把一个 nums1 排列变成 nums2 的...

今日学习记录

1. 拆分合并数组leetcode.3690

关键词: bfs 问题分析:

  1. 一开始没看到数据这么小,所以没有想到暴力,结果要搜索的范围这么小,那就是暴力搜索了,但是搜索也要技巧

核心思路

  1. 既然就是搜索,那么不要再想有什么方法去限制了,直接搜索,但是这个不是简单的全排列,把一个 nums1 排列变成 nums2 的排列,但是每次操作却可以操作一个整个子字符串,所以怎么弄,别想多了就是一个个位子枚举,就是这个数组操作我不太收悉,而且不能使用哈希 set 来进行快速去重,要使用红黑树实现的 set 或者手写哈希函数
  2. 还能提升,将这两个数组转成字符串再来进行剪切拼接的操作,字符串的操作更加简单,最最关键的是 string 可以直接使用哈希 set,减少了大部分麻烦的事,而且性能更好,跟最快的位运算版本差不了多少
  3. 虽然但是,还能再提升,就是位运算了

**最终代码:

	class Solution {
	
	public:
	
	    int minSplitMerge(vector<int>& nums1, vector<int>& nums2) {
	
	        if(nums1==nums2) return 0;
	
	        unordered_set<string> st;
	
	        string str1 = "";
	
	        for(int x:nums1) str1 += x-'0';
	
	        string str2 = "";
	
	        for(int x:nums2) str2 += x-'0';
	
	        vector<string> q = {str1};
	
	        int n = nums1.size();
	
	        for(int ans = 0;;ans++){
	
	            vector<string> next;
	
	            for(auto arr:q){
	
	                if(arr==str2){
	
	                    return ans;
	
	                }
	
	                for(int l = 0;l<n;l++){
	
	                    for(int r = 1;r<=n-l;r++){
	
	                        auto b = arr;
	
	                        string temp = b.substr(l,r);
	
	                        b.erase(l,r);
	
	                        for(int d = 0;d<b.size();d++){
	
	                            auto c = b;
	
	                            c.insert(d,temp);
	
	                            if(st.insert(c).second) next.push_back(c);
	
	                        }
	
	                    }
	
	                }
	
	            }
	
	            q = move(next);
	
	        }
	
	        return 1;
	
	    }
	
	};

学到的点:

  1. bfs

执笔 手写

随机文章

加载中...