主頁 >  其他 > Leetcode打卡——陣列和字串(共22題)

Leetcode打卡——陣列和字串(共22題)

2021-11-15 14:24:36 其他

集合:

定義
由一個或多個確定的元素所構成的整體,
特性
1.集合里的元素型別不一定相同,
2.集合里的元素沒有順序,
事實上,這樣的集合并不直接存在于編程語言中,然而,實際編程語言中的很多資料結構,就是在集合的基礎上添加了一些規則形成的,

串列(線性串列)

定義:
一種資料項構成的有限序列,即按照一定的線性順序,排列而成的資料項的集合,
串列的概念是在集合的特征上形成的,它具有順序,且長度是可變的,
串列最常見的表現形式有陣列和鏈表,而我們熟悉的堆疊和佇列則是兩種特殊型別的串列,

陣列

如何從宏觀上區分串列和陣列呢?這里有一個重要的概念:索引
1.陣列會用一些名為索引的數字來標識每項資料在陣列中的位置,且在大多數編程語言中,索引是從 0 算起的,我們可以根據陣列中的索引,快速訪問陣列中的元素,串列中沒有索引,這是陣列與串列最大的不同點,
2.陣列中的元素在記憶體中是連續存盤的,且每個元素占用相同大小的記憶體,串列中的元素在記憶體中可能彼此相鄰,也可能不相鄰,比如串列的另一種實作方式——鏈表,它的元素在記憶體中則不一定是連續的

1.Leetcode724.尋找陣列的中心下標

在這里插入圖片描述
前綴和

class Solution {
public:
    int pivotIndex(vector<int>& nums) {
        int a[10100];
        memset(a,0,sizeof a);
        int len=nums.size();
        for(int i=1;i<=len;i++){         
            a[i]=a[i-1]+nums[i-1];
        }
        
        for(int i=1;i<=len;i++){
            if(a[i-1]==a[len]-a[i]){
                return i-1;
            }
        }
        return -1;
    }
};

2.Leetcode35.搜索插入位置

在這里插入圖片描述

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int len=nums.size();
        int l=0,r=len-1;
        while(l<r){
            int mid=(l+r)/2;
            if(nums[mid]>=target){
                r=mid;
            }else{
                l=mid+1;
            }
        }
        if(l==len-1&&target>nums[l])return l+1;
        return l;
    }
};

3.Leetcode56.合并區間

在這里插入圖片描述

const int INF=-0x3f3f3f3f;
class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>>ans;
        sort(intervals.begin(),intervals.end());
        int len=intervals.size();
        int begin,end;
         for(int i=0;i<len;i++){
             vector<int>line;
             int a=intervals[i][0],b=intervals[i][1];
             if(!i){
                 begin=a;
                 end=b;
             }
             if(i&&a>end){
                line.push_back(begin);
                line.push_back(end);
                ans.push_back(line);
                begin=a;
                end=b;   
             }else if(i&&a<=end){
                 end=max(end,b);
             }
             if(i==len-1){
                 vector<int>tail;
                 tail.push_back(begin);
                 tail.push_back(end); 
                 ans.push_back(tail);
             }
             
             
         }
         return ans;
    }
};

二維陣列

只是將陣列中的每個元素變成了一維陣列
二維陣列的本質上仍然是一個一維陣列,內部的一維陣列仍然從索引 0 開始,我們可以將它看作一個矩陣,并處理矩陣的相關問題,
在這里插入圖片描述

4.面試題 01.07. 旋轉矩陣

在這里插入圖片描述

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int len=matrix.size();
       
        for(int i=0;i<len;i++){
            for(int j=0;j<i;j++){
                swap(matrix[i][j],matrix[j][i]);
            }
        }
        
        for(int i=0;i<len;i++){
            for(int j=0;j<len/2;j++){
                swap(matrix[i][j],matrix[i][len-j-1]);
            }
        }
             
    }
};

5.面試題 01.08. 零矩陣

在這里插入圖片描述

法一:標記陣列
最容易想到了就不寫了

法二:使用兩個標記變數
我們可以用矩陣的第一行和第一列代替方法一中的兩個標記陣列,以達到 O(1)O(1) 的額外空間,但這樣會導致原陣列的第一行和第一列被修改,無法記錄它們是否原本包含 00,因此我們需要額外使用兩個標記變數分別記錄第一行和第一列是否原本包含 00,

在實際代碼中,我們首先預處理出兩個標記變數,接著使用其他行與列去處理第一行與第一列,然后反過來使用第一行與第一列去更新其他行與列,最后使用兩個標記變數更新第一行與第一列即可,

class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        int n=matrix.size();
        int m=matrix[0].size();
        bool row=false,col=false;
        for(int i=0;i<m;i++){
            if(!matrix[0][i]){
                row=true;
                break;
            }
        }
        for(int i=0;i<n;i++){
            if(!matrix[i][0]){
                col=true;
                break;
            }
        }
        for(int i=1;i<n;i++){
            for(int j=1;j<m;j++){
                if(!matrix[i][j])matrix[0][j]=matrix[i][0]=0;
            }
        }
        for(int i=1;i<n;i++){
            for(int j=1;j<m;j++){
                if(!matrix[0][j]||!matrix[i][0])matrix[i][j]=0;
            }
        }
        if(row){
            for(int i=0;i<m;i++){
                matrix[0][i]=0;
            }
        }
         if(col){
            for(int i=0;i<n;i++){
                matrix[i][0]=0;
            }
        }
    }
};

法三:使用一個標記變數
我們可以對方法二進一步優化,只使用一個標記變數記錄第一列是否原本存在 00,這樣,第一列的第一個元素即可以標記第一行是否出現 00,但為了防止每一列的第一個元素被提前更新,我們需要從最后一行開始,倒序地處理矩陣元素,

class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        int n=matrix.size();
        int m=matrix[0].size();
        bool col=false;
        //注意先列再行不然行matrix[0][0]的改變會影響到列
        for(int i=0;i<n;i++){
            if(!matrix[i][0]){
                col=true;
                break;
            }
        }
        for(int i=0;i<m;i++){
            if(!matrix[0][i]){
                matrix[0][0]=0;
                break;
            }
        }
        
        for(int i=1;i<n;i++){
            for(int j=1;j<m;j++){
                if(!matrix[i][j])matrix[0][j]=matrix[i][0]=0;
            }
        }
        for(int i=1;i<n;i++){
            for(int j=1;j<m;j++){
                if(!matrix[0][j]||!matrix[i][0])matrix[i][j]=0;
            }
        }
        if(matrix[0][0]==0){
            for(int i=0;i<m;i++){
                matrix[0][i]=0;
            }
        }
         if(col){
            for(int i=0;i<n;i++){
                matrix[i][0]=0;
            }
        }
    }
};

6.Leetcode498. 對角線遍歷

直接模擬
在這里插入圖片描述

class Solution {
public:
    vector<int> findDiagonalOrder(vector<vector<int>>& mat) {
          vector<int>ans;
          int n=mat.size(),m=mat[0].size();     
          bool flag=true;
          int pre;
          pre=0;
          int len=m+n;
          for(int i=0;i<len*2-1;i++){
             if(flag){
                 int row=pre;
                 int col=i-pre; 
                 int b=2*len-i;    
                 while(!(row>=0&&row<n&&col>=0&&col<m)&&b--){
                   row--;
                   col++;             
                 }    
                 while(row>=0&&row<n&&col>=0&&col<m){
                     ans.push_back(mat[row--][col++]);
                 }              
                 pre=col;
             }else{
                 int row=i-pre;
                 int col=pre;
                 int b=2*len-1-i;
                 while(!(row>=0&&row<n&&col>=0&&col<m)&&b--){
                    row++;
                    col--;
                 }
                 while(row>=0&&row<n&&col>=0&&col<m){
                     ans.push_back(mat[row++][col--]);
                 }
                 pre=row;
             }
             flag=!flag;
          }         
          return ans;
    }
};

7.Leetcode14. 最長公共前綴

在這里插入圖片描述
法一:橫向掃描暴力解

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
         string ans;
         int len=strs.size();
         int n=strs[0].size();
         for(int i=0;i<n;i++){
            auto c=strs[0][i];
            int j;
           for(j=1;j<len;j++){
              if(c!=strs[j][i])break;
           }
           if(j==len){
               ans+=c;
           }else{
               return ans;
           }
         }
         return ans;
    }
};

法二:
看了大佬的解法,超級巧妙
字典排序后,第一個串與最后一個串差異最大,找他們兩的公共前綴,就是所有子串的公共前綴

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
         string ans;
         sort(strs.begin(),strs.end());
         string st=strs[0],end=strs[strs.size()-1];
         int len1=st.size(),len2=end.size();
         int t=0;
         while(t<len1&&t<len2&&st[t]==end[t]){
             ans+=st[t];
             t++;
         }
         return ans;
    }
};

8.Leetcode5. 最長回文子串

在這里插入圖片描述

法一:暴力法,直接超時

class Solution {
public:
    string longestPalindrome(string s) {
       int len=s.size();
       if(len<2)return s;
       int begin=0;
       int maxlen=1;
       
       for(int i=0;i<len-1;i++){
           for(int j=i+1;j<len;j++){
               if(j-i+1>maxlen&&check(i,j,s)){
                   maxlen=j-i+1;
                   begin=i;
               }
           }
       }
       printf("%d",maxlen);
       return s.substr(begin,maxlen);
    }
    bool check(int i,int j,string s){
        int len=(j-i)/2;
        for(int k=0;k<=len;k++){
            if(s[i+k]!=s[j-k]){
                return false;
                
            }
        }
        return true;
    }
};

法二:動態規劃

const int N=1010;
class Solution {
public:
    bool dp[N][N];
    string longestPalindrome(string s) {
        int len=s.size();
        if(len<2||len==2&&(s[0]==s[1]))return s;
         int begin=0,end=0;
         memset(dp,0,sizeof dp);
         for(int i=0;i<len;i++){
             dp[i][i]=true;     
             if(i+1<len&&s[i]==s[i+1]){
                 dp[i][i+1]=true;
                 begin=i;
                 end=i+1;
             }
         }
        
         for(int k=2;k<len;k++){
             for(int i=0;i<len;i++){
                if(i+k==len)break;
                if(s[i]==s[i+k]&&dp[i+1][i+k-1]){
                    dp[i][i+k]=true;
                    if(k>end-begin){
                        begin=i;
                        end=i+k;
                    }
                }
             }
         }
         
         return s.substr(begin,end-begin+1);

    }
};

法三:中心擴展法

const int N=1010;
typedef pair<int,int>PII;
class Solution {
public:
    string longestPalindrome(string s) {
       int len=s.size();
       if(len==0||len==1)return s;
       PII ans={0,0};
       for(int i=0;i<len;i++){
          auto t=check(i,i,s);
          if(t.second-t.first>ans.second-ans.first){
              ans=t;
          }
          t=check(i,i+1,s);
          if(t.second-t.first>ans.second-ans.first){
              ans=t;
          }
       }
       
       return s.substr(ans.first,ans.second-ans.first+1);
    }
    PII check(int i,int j,string s){
        PII ans;
        int len=s.size();
        int l=i,r=j;
        while(s[l]==s[r]){  
            ans={l,r};  
            l--;
            r++;
            if(l<0||l>=len||r<0||r>=len)break;
        }
        
        return ans;
       
    }
};

9.Leetcode151. 翻轉字串里的單詞

在這里插入圖片描述
注意要去掉多余的空格

class Solution {
public:
    string reverseWords(string s) {
        int i=0,j=s.size()-1;
        while(s[i]==' ')i++;
        while(s[j]==' ')j--;
        s=s.substr(i,j+1-i);
        
        
        for(int i=0;i<s.size();i++){
           int j=i;
           while(j<s.size()&&s[j]!=' ')j++;
           reverse(s.begin()+i,s.begin()+j);
           if(j==s.size())break;
           int p=j;
           while(s[p+1]==' ')p++;
           if(p!=j)s=s.substr(0,j+1)+s.substr(p+1,s.size()-p-1);
           i=j;
        }
        reverse(s.begin(),s.end());
        
        return s;
    }
};

10.Leetcode28. 實作 strStr()

在這里插入圖片描述

KMP

class Solution {
public:
    int strStr(string haystack, string needle) {
       int n=haystack.size();
       int m=needle.size();
       if(n==0&&m>0)return -1;
       if((n==0||m==0)||haystack==needle)return 0;

       int ans=0;
       const int N=5e4+10;
       int ne[N];
       memset(ne,0,sizeof ne);
       bool flag=false;

       haystack=" "+haystack;
       needle=" "+needle;
       
       for(int i=2,j=0;i<=m;i++){
           while(j&&needle[i]!=needle[j+1])j=ne[j];
           if(needle[i]==needle[j+1])j++;
           ne[i]=j;
       }
       for(int i=1,j=0;i<=n;i++){
           while(j&&haystack[i]!=needle[j+1])j=ne[j];
           if(haystack[i]==needle[j+1])j++;
           if(j==m){
              ans=i-m;
              flag=true;
              break;
           }

       }
       if(!flag)return -1;
       return ans;
    }
};

11.Leetcode344. 反轉字串

在這里插入圖片描述

class Solution {
public:
    void reverseString(vector<char>& s) {
        int len=s.size();
        for(int i=0;i<len/2;i++){
            swap(s[i],s[len-i-1]);
        }
    }
};

12.Leetcode561. 陣列拆分 I

在這里插入圖片描述
直接排序,兩個一組

class Solution {
public:
    int arrayPairSum(vector<int>& nums) { 
        int len=nums.size();
        quicksort(0,len-1,nums);
        int ans=0;
        for(int i=0;i<len;i+=2){
           ans+=nums[i];
        }
        return ans;
    }
    void quicksort(int l,int r,vector<int>&nums){
        if(l==r)return;
        int x=nums[l],i=l-1,j=r+1;
        while(i<j){
            do{i++;}while(nums[i]<x);
            do{j--;}while(nums[j]>x);
            if(i<j)swap(nums[i],nums[j]);
        }
        quicksort(l,j,nums);
        quicksort(j+1,r,nums);
    }
};

13.Leetcode167. 兩數之和 II - 輸入有序陣列

在這里插入圖片描述

class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {
        vector<int>ans;
       int len=numbers.size();
       int i=0,j=len-1;
       int prei=0,prej=len-1;
      
       while(i<=j){
          if(numbers[i]+numbers[j]==target){
              ans.push_back(i+1);
              ans.push_back(j+1);
              break;
          }else if(numbers[i]+numbers[j]<target){
              i++;
              if(i==prei)break;
              prei=i;
              
          }else{
              j--;
              if(j==prej)break;
              prej=j;
          }
       }
       return ans;
    }
};

14.Leetcode27. 移除元素

在這里插入圖片描述
快慢指標

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int len=nums.size();
        int j=0;
        for(int i=0;i<len;i++){
            if(nums[i]!=val)nums[j++]=nums[i];
        }
        return j;
    }
};

15.Leetcode485. 最大連續 1 的個數

在這里插入圖片描述

class Solution {
public:
    int ans=0;
    int findMaxConsecutiveOnes(vector<int>& nums) {
        int len=nums.size();
        for(int i=0;i<len;i++){
            int j=i;
            while(j<len&&nums[j]==1)j++;
            ans=max(ans,j-i);
            if(i!=j)i=j-1;
        }
        return ans;
    }
};

16.Leetcode209. 長度最小的子陣列

在這里插入圖片描述

class Solution {
public:
    const int MAX=0x3f3f3f3f;
    int ans=MAX;
    int minSubArrayLen(int target, vector<int>& nums) {
        int len=nums.size();
        for(int i=0;i<len;i++){
            int j=i,sum=0;
            while(j<len&&sum<target){
               sum+=nums[j++];
            }
            if(j==len&&sum<target)break;
            if(sum>=target&&j-i!=0)ans=min(ans,j-i);
        }
        if(ans==MAX)return 0;
        return ans;
        
        
    }
};

17.Leetcode118. 楊輝三角

在這里插入圖片描述

class Solution {
public:
    vector<vector<int>>ans; 
    vector<int>line;
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>>ans=dfs(1,numRows);
        return ans;
    }
    vector<vector<int>>dfs(int row,int end){
        vector<int>preline=line;
        line.clear();
        if(row==1){
           line.push_back(1); 
        }else if(row==2){
            line.push_back(1);
            line.push_back(1);
        }else{
            int len=preline.size();
            line.push_back(1);
            for(int i=0;i<len-1;i++){
                line.push_back(preline[i]+preline[i+1]);
            }
            line.push_back(1);
        }
        ans.push_back(line);
        if(row<end)dfs(row+1,end);
        return ans;
    }
};

18.Leetcode119. 楊輝三角 II

在這里插入圖片描述

class Solution {
public:
    vector<int>line;
    vector<int> getRow(int numRows) {
        vector<int>ans=dfs(1,numRows+1);
        return ans;
    }
    vector<int>dfs(int row,int end){
        vector<int>preline=line;
        line.clear();
        if(row==1){
           line.push_back(1); 
        }else if(row==2){
            line.push_back(1);
            line.push_back(1);
        }else{
            int len=preline.size();
            line.push_back(1);
            for(int i=0;i<len-1;i++){
                line.push_back(preline[i]+preline[i+1]);
            }
            line.push_back(1);
        }
        if(row<end)dfs(row+1,end);
        return line;
    }
};

19. Leetcode557. 反轉字串中的單詞 III

在這里插入圖片描述

class Solution {
public:
    string reverseWords(string s) {
        int len=s.size();
        for(int i=0;i<len;i++){
            int j=i;
            while(j<len&&s[j]!=' ')j++;
            reverse(s.begin()+i,s.begin()+j);
            i=j;
        }
        return s;
    }
};

20.Leetcode153. 尋找旋轉排序陣列中的最小值

在這里插入圖片描述

class Solution {
public:
    int findMin(vector<int>& nums) {
       int len=nums.size();
       int l=0,r=len-1;
       int high=nums[len-1];
       while(l<r){
           int mid=(l+r)/2;
           if(nums[mid]<=high){
               r=mid;
           }else{
               l=mid+1;
           }
       }
       return nums[l];
    }
};

21.Leetcode26. 洗掉有序陣列中的重復項

在這里插入圖片描述

class Solution {
public:
    
    int removeDuplicates(vector<int>& nums) {
        int len=nums.size(),j=0;

        for(int i=0;i<len;i++){
           if(j==0||nums[i]!=nums[j-1]){
               nums[j++]=nums[i];              
           }
     
        }
        return j;
    }

};

22.Leetcode283. 移動零

在這里插入圖片描述

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int len=nums.size(),j=0;
        for(int i=0;i<len;i++){
            if(nums[i]!=0){
               nums[j++]=nums[i];
            }
        }
        for(int i=j;i<len;i++){
            nums[i]=0;
        }
    }
};

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/357253.html

標籤:其他

上一篇:用scala實作spark讀取并處理資料然后提交到mongodb案例,包含遠程除錯spark總結分享

下一篇:最大最小歸一化和反歸一化

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more