主頁 >  其他 > LeetCode 第63場雙周賽復盤

LeetCode 第63場雙周賽復盤

2021-10-19 08:03:11 其他

LeetCode 第63場雙周賽復盤

背景

2022秋招以0 offer基本結束,沒有收到很滿意的offer,基本上大廠全掛,對自己這樣一個結果并不滿意,為了能在春招上識訓到滿意的offer,于是決定繼續參加周賽,提高自己的演算法能力,

結果

前面二道過了,第二題wa了9次,全球排名4603 / 9524,全國排名1499/2828,妥妥的中位數,下次的目標是進前50%

復盤

第一題[簡單貪心]:

傳送門

題目描述:

一個房間里有 n 個座位和 n 名學生,房間用一個數軸表示,給你一個長度為 n 的陣列 seats ,其中 seats[i] 是第 i 個座位的位置,同時給你一個長度為 n 的陣列 students ,其中 students[j] 是第 j 位學生的位置,

你可以執行以下操作任意次:

  • 增加或者減少第 i 位學生的位置,每次變化量為 1 (也就是將第 i 位學生從位置 x 移動到 x + 1 或者 x - 1)

請你回傳使所有學生都有座位坐的 最少移動次數 ,并確保沒有兩位學生的座位相同,

請注意,初始時有可能有多個座位或者多位學生在 同一 位置,

示例1 :

輸入:seats = [3,1,5], students = [2,7,4]
輸出:4
解釋:學生移動方式如下:

  • 第一位學生從位置 2 移動到位置 1 ,移動 1 次,
  • 第二位學生從位置 7 移動到位置 5 ,移動 2 次,
  • 第三位學生從位置 4 移動到位置 3 ,移動 1 次,
    總共 1 + 2 + 1 = 4 次移動,

題目解答:

翻譯翻譯就是,給這些懶得多走路的學生找位置坐,使得他們走的路是最少的,

當時競賽的解答:

我的想法非常樸素,是給每個懶學生找離他們最近的位子坐,

主要是靠經驗,因為周賽一般來說第一題都很簡單,通常就是貪心題,比較常見的貪心做法就是先排序,

class Solution {
    public int minMovesToSeat(int[] seats, int[] students) {
        Arrays.sort(seats);
        Arrays.sort(students);
        int n = seats.length;
        int res = 0;
        for(int i=0;i<n;i++){
            res+=Math.abs(seats[i]-students[i]);
        }
        return res;
    }
}

貪心題的證明[想要提高必須要吃的苦]

證明上述的貪心做法是正確的,別看寫的多,其實就是去絕對值

  • n=1時,只能有去做那個位置

  • n=2時,設兩個座位位置分別是a,b,滿足a<b;設兩個學生c,d,滿足c<d;

    • 方案一,按照大小關系一一對應,即cost1=|a-c|+|b-d|
    • 方案二,不按照方案一,那么選擇的代價cost2=|a-d|+|b-c|;

    要證明方案一的代價要比方案二的代價小,即cost1<cost2,也就是cost1-cost2<0

    要求絕對值,就得判斷大小關系,題設有a<b;c<d;

    情況一:a<b<c<d;
    ∣ a ? c ∣ + ∣ b ? d ∣ ? ( ∣ a ? d ∣ + ∣ b ? c ∣ ) = c ? a + d ? b ? ( d ? a + c ? b ) |a-c|+|b-d|-(|a-d|+|b-c|)=c-a+d-b-(d-a+c-b) a?c+b?d?(a?d+b?c)=c?a+d?b?(d?a+c?b)

    = c ? a + d ? b ? d + a ? b ? c = 0 =c-a+d-b-d+a-b-c=0 =c?a+d?b?d+a?b?c=0

    情況二:c<d<a<b;兩種方案一樣

∣ a ? c ∣ + ∣ b ? d ∣ ? ( ∣ a ? d ∣ + ∣ b ? c ∣ ) = 0 |a-c|+|b-d|-(|a-d|+|b-c|)=0 a?c+b?d?(a?d+b?c)=0

? 情況三:a<c<b<d;
∣ a ? c ∣ + ∣ b ? d ∣ ? ( ∣ a ? d ∣ + ∣ b ? c ∣ ) = 2 ( c ? b ) < 0 |a-c|+|b-d|-(|a-d|+|b-c|)=2(c-b)<0 a?c+b?d?(a?d+b?c)=2(c?b)<0
? 情況四:c<a<d<b;
∣ a ? c ∣ + ∣ b ? d ∣ ? ( ∣ a ? d ∣ + ∣ b ? c ∣ ) = 2 ( c ? d ) < 0 |a-c|+|b-d|-(|a-d|+|b-c|)=2(c-d)<0 a?c+b?d?(a?d+b?c)=2(c?d)<0

? 情況五:a<c<d<b:
∣ a ? c ∣ + ∣ b ? d ∣ ? ( ∣ a ? d ∣ + ∣ b ? c ∣ ) = c ? a + b ? d ? ( d ? a + b ? c ) = 2 ( c ? d ) < 0 |a-c|+|b-d|-(|a-d|+|b-c|)=c-a+b-d-(d-a+b-c)=2(c-d)<0 a?c+b?d?(a?d+b?c)=c?a+b?d?(d?a+b?c)=2(c?d)<0

  • n>2時,用數學歸納法證明

第二題Alice和Bob

傳送門

題目描述

總共有 n 個顏色片段排成一列,每個顏色片段要么是 ‘A’ 要么是 ‘B’ ,給你一個長度為 n 的字串 colors ,其中 colors[i] 表示第 i 個顏色片段的顏色,

Alice 和 Bob 在玩一個游戲,他們 輪流 從這個字串中洗掉顏色,Alice 先手 ,

如果一個顏色片段為 ‘A’ 且 相鄰兩個顏色 都是顏色 ‘A’ ,那么 Alice 可以洗掉該顏色片段,Alice 不可以 洗掉任何顏色 ‘B’ 片段,
如果一個顏色片段為 ‘B’ 且 相鄰兩個顏色 都是顏色 ‘B’ ,那么 Bob 可以洗掉該顏色片段,Bob 不可以 洗掉任何顏色 ‘A’ 片段,
Alice 和 Bob 不能 從字串兩端洗掉顏色片段,
如果其中一人無法繼續操作,則該玩家 輸 掉游戲且另一玩家 獲勝 ,
假設 Alice 和 Bob 都采用最優策略,如果 Alice 獲勝,請回傳 true,否則 Bob 獲勝,回傳 false,

示例 1:

輸入:colors = “AAABABB”
輸出:true
解釋:
AAABABB -> AABABB
Alice 先操作,
她洗掉從左數第二個 ‘A’ ,這也是唯一一個相鄰顏色片段都是 ‘A’ 的 ‘A’ ,

現在輪到 Bob 操作,
Bob 無法執行任何操作,因為沒有相鄰位置都是 ‘B’ 的顏色片段 ‘B’ ,
因此,Alice 獲勝,回傳 true ,

題目解答

就是找出兩個人可以操作的次數,因為alice先開始,所以如果alice的操作次數大于bob的操作次數+1的話,那么alice就贏了

wa了9次,才想出的,可以看出寫出的代碼也很爛,看別人的代碼也有用字串寫的

class Solution {
    public boolean winnerOfGame(String colors) {
        int n = colors.length();
        int prevA = -1;
        int cnt1 = 0;
        int cnt2 = 0;
        int lenA = 0;
        int prevB = -1;
        int lenB = 0;
        for(int i=0;i<n;i++){
            if(colors.charAt(i)=='A'){
                prevB = i;
                if(lenB>=3){
                    cnt2+=lenB-2;
                }
                lenB=0;
                lenA = Math.max(lenA,i-prevA);//統計當前連續的A
            }else{
                prevA = i;
                if(lenA>=3){
                    cnt1+=lenA-2;
                  //如果A的連續斷了就將這一段可以操作的次數加上去
                }
                lenA = 0;
                lenB = Math.max(lenB,i-prevB);
            }
        }
       //統計末尾的情況
        if(lenA>=3){
            cnt1+=lenA-2;
        }
        if(lenB>=3){
            cnt2+=lenB-2;
        }
        if(cnt1>=cnt2+1){
            return true;
        }else{
            return false;
        }
    }
}

字串分割寫法

參考鏈接

    public static boolean winnerOfGame(String colors) {
        String A[] = colors.split("B");
      	//比如"AAABABB",劃分出來的就是[AAA,A]
        String B[] = colors.split("A");
      	//劃分出來的就是[ , , ,B,BB]
        int cnt1 = 0, cnt2 = 0;
        for (String str : A) {
            if (str.length() > 2) {
                cnt1 += (str.length() - 2);//只有大于三才能操作
            }
        }
        for (String str : B) {
            if (str.length() > 2) {
                cnt2 += (str.length() - 2);
            }
        }
        if (cnt1 == 0) return false;
        if (cnt1 <= cnt2) return false;
        else return true;
    }

第三題[無向圖的最短路徑]

傳送門

題目描述:

給你一個有 n 個服務器的計算機網路,服務器編號為 0 到 n - 1 ,同時給你一個二維整數陣列 edges ,其中 edges[i] = [ui, vi] 表示服務器 ui 和 vi 之間有一條資訊線路,在 一秒 內它們之間可以傳輸 任意 數目的資訊,再給你一個長度為 n 且下標從 0 開始的整數陣列 patience ,

題目保證所有服務器都是 相通 的,也就是說一個資訊從任意服務器出發,都可以通過這些資訊線路直接或間接地到達任何其他服務器,

編號為 0 的服務器是 主 服務器,其他服務器為 資料 服務器,每個資料服務器都要向主服務器發送資訊,并等待回復,資訊在服務器之間按 最優 線路傳輸,也就是說每個資訊都會以 最少時間 到達主服務器,主服務器會處理 所有 新到達的資訊并 立即 按照每條資訊來時的路線 反方向 發送回復資訊,

在 0 秒的開始,所有資料服務器都會發送各自需要處理的資訊,從第 1 秒開始,每 一秒最 開始 時,每個資料服務器都會檢查它是否收到了主服務器的回復資訊(包括新發出資訊的回復資訊):

如果還沒收到任何回復資訊,那么該服務器會周期性 重發 資訊,資料服務器 i 每 patience[i] 秒都會重發一條資訊,也就是說,資料服務器 i 在上一次發送資訊給主服務器后的 patience[i] 秒 后 會重發一條資訊給主服務器,
否則,該資料服務器 不會重發 資訊,
當沒有任何資訊在線路上傳輸或者到達某服務器時,該計算機網路變為 空閑 狀態,

請回傳計算機網路變為 空閑 狀態的 最早秒數 ,

題目解答:

圖這一塊還是老樣子,老是做不出來

下面是參考借鑒的大佬思路

T i T_i Ti?表示 i i i號服務器完成所有傳輸需要的最短時間, d i s t i dist_i disti?表示 i i i號服務器與0號服務器(也叫主服務器)的距離, p a t i e n c e i patience_i patiencei?表示 i i i號服務器對應的重發等待時間

從i號服務器發送到主服務器,再從主服務器傳回給i號服務器
T i = 2 ? d i s t i + [ ( 2 ? d i s t i ? 1 ) / p a t i e n c e i ] ? p a t i e n c e i T_i=2*dist_i+[(2*dist_i-1)/patience_i]*patience_i Ti?=2?disti?+[(2?disti??1)/patiencei?]?patiencei?

public int networkBecomesIdle(int[][] edges, int[] patience) {
        int n = patience.length;
        int res = 0;
        //建圖
        HashMap<Integer,List<Integer>> adj = new HashMap<>();
        for(int[] e:edges){
            int x = e[0], y = e[1];
            adj.putIfAbsent(x,new ArrayList<>());
            adj.putIfAbsent(y,new ArrayList<>());//無向圖建兩次
            adj.get(x).add(y);
            adj.get(y).add(x);
        }
        //bfs求最短路徑
        int INF = (int)1e9;
        int[] dmin = new int[n];
        Arrays.fill(dmin,INF);
        Queue<Integer> q = new LinkedList<>();
        q.offer(0);
        dmin[0] = 0;
        while (!q.isEmpty()){
            int x = q.poll();
            if (x!=0){
                int time = dmin[x];
                int cur_cost = 2*time+(2*time-1)/patience[x]*patience[x];
                res = Math.max(res,cur_cost);
            }
            for (int y : adj.getOrDefault(x, new ArrayList<>())) {
                if(dmin[x]+1<dmin[y]){
                    dmin[y] = dmin[x]+1;
                    q.offer(y);
                }
            }
        }
        return res+1;
    }

這個代碼完全可以總結出求最小路徑的模版

        //建圖
        HashMap<Integer,List<Integer>> adj = new HashMap<>();
        for(int[] e:edges){
            int x = e[0], y = e[1];
            adj.putIfAbsent(x,new ArrayList<>());
            adj.putIfAbsent(y,new ArrayList<>());//無向圖建兩次
            adj.get(x).add(y);
            adj.get(y).add(x);
        }
			  //bfs求最短路徑
        int INF = (int)1e9;
        int[] dmin = new int[n];
        Arrays.fill(dmin,INF);
        Queue<Integer> q = new LinkedList<>();
        q.offer(0);
        dmin[0] = 0;
        while (!q.isEmpty()){
            int x = q.poll();
            if (x!=0){
                int time = dmin[x];
            }
            for (int y : adj.getOrDefault(x, new ArrayList<>())) {
                if(dmin[x]+1<dmin[y]){
                    dmin[y] = dmin[x]+1;
                    q.offer(y);
                }
            }
        }

第四題

傳送門

題目描述:

給你兩個 從小到大排好序 且下標從 0 開始的整數陣列 nums1 和 nums2 以及一個整數 k ,請你回傳第 k (從 1 開始編號)小的 nums1[i] * nums2[j] 的乘積,其中 0 <= i < nums1.length 且 0 <= j < nums2.length ,

示例1:

輸入:nums1 = [2,5], nums2 = [3,4], k = 2
輸出:8
解釋:第 2 小的乘積計算如下:

  • nums1[0] * nums2[0] = 2 * 3 = 6
  • nums1[0] * nums2[1] = 2 * 4 = 8
    第 2 小的乘積為 8 ,

資料范圍:

1 <= nums1.length, nums2.length <= 5 * 10^4
-10^5 <= nums1[i], nums2[j] <= 10^5
1 <= k <= nums1.length * nums2.length
nums1 和 nums2 都是從小到大排好序的,

題目解答:

從資料范圍上去看,O(n^2)的演算法肯定是過不了的

于是思考時間復雜度低的演算法,二分

二分中套二分

public class Solution {
    int[] A;
    int[] B;
    long k;
    public void mswap(int[] a,int[] b){
        int[] c = a;
        a = b;
        b = c;
    }
    public long kthSmallestProduct(int[] nums1, int[] nums2, long k) {
        A=nums1;
        B=nums2;
        this.k=k;
        long l = (long)(-1e10);
        long r = (long)(1e10);
        //二分找一個數mid 使得小于mid的數正好有k個
        while (l<r){
            long mid = (l+r)>>1;
            if (check(mid)){
                r=mid;
            }else {
                l=mid+1;
            }
        }
        return l;
    }

    private boolean check(long uplimit) {
        long res = 0;
        if (A.length > B.length)
        {
            mswap(A, B);
        }
        //A代表的是長度小的陣列
        //B代表的是長度大的陣列
        int n1 = A.length;//兩個陣列都是從小到大排的
        int n2 = B.length;

        for (int x : A)
        {   //對A陣列中的每一個數分奇偶來判斷
            if (x < 0)//如果這個數是負數,那么它乘以B陣列里最大的數就是最小的
            {
                //----如果最小的都大了,就過0
                if ((long)x * B[n2 - 1] > uplimit)
                {
                    continue;
                }
                else
                {
                    //----二分最左
                    int l = 0;
                    int r = n2 - 1;
                    while (l < r)
                    {
                        int mid = l + r >> 1;
                        if ((long)x * B[mid] <= uplimit)
                            r = mid;
                        else
                            l = mid + 1;
                    }
                    //由于x是負數,x乘以l的右邊的數都小于uplimit,
                    res += (n2 - l);
                }
            }
            else if (x > 0)
            {
                //----如果最小的都大了,就過
                if ((long)x * B[0] > uplimit)
                {
                    continue;
                }
                else
                {
                    //----二分最右
                    int l = 0;
                    int r = n2 - 1;
                    while (l < r)
                    {
                        int mid = l + r + 1 >> 1;
                        if ((long)x * B[mid] <= uplimit)
                            l = mid;
                        else
                            r = mid - 1;
                    }
                    //由于x是負數,x乘以l的左邊的數都小于uplimit,
                    res += (l + 1);
                }
            }
            else
            {
                if (uplimit >= 0)
                {
                    res += n2;
                }
            }

        }
        return res >= k ? true : false;
    }
}

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

標籤:其他

上一篇:第52篇 Android Studio實作生命數字游戲(七)ListView與配接器

下一篇:Java學習筆記——類變數和類方法

標籤雲
其他(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