《剑指offer》 java版本 牛客网全AC

2023-11-05

1.二维数组中的查找

public class Solution {
    public boolean Find(int target, int [][] array) {
        if(array.length == 0 || array[0].length == 0  )
            return false;
        int rows = array.length-1;
        int cols = array[0].length-1;
        int i = 0;
        int j = cols;
        while(i <= rows && j >= 0)
        {
            if(array[i][j] < target)
            {
                i++;
            }
            if(array[i][j] > target)
            {
                j--;
            }
            if(array[i][j] == target)
                return true;
        }
        return false;
    }
}

2.替换空格
简略思路:新开一个数组,从后往前,依次复制

import java.util.*;
public class Solution {
    public String replaceSpace(StringBuffer str) {
        String str1 = str.toString();
    	if(str1.equals(""))
            return str1;
        char [] strArray = str1.toCharArray();
        int i =0;
        int lengthSpace = 0;
        while(i < strArray.length)
        {
            if(strArray[i] == ' ')
                lengthSpace++;
            i++;
        }
        int newStrLength = strArray.length + lengthSpace*2;
        char [] newStr = new char[newStrLength];
        int j = newStrLength-1;
        i = strArray.length - 1;
        while(i >= 0)
        {
            if(strArray[i] !=  ' ')
            {
                newStr[j--] = strArray[i--];
            }else{
                newStr[j--] = '0';
                newStr[j--] = '2';
                newStr[j--] = '%';
                i--;
            }
        }
        return new String(newStr);
    }
}

3.从尾到头打印链表(反转链表)
思路:就是三个指针,pre,p,next,然后互相指就行,首先把pre的next指为null,然后p指向head的next,然后处理完开始的两个头结点,然后再处理后序的链表节点

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> resultList = new ArrayList<Integer>();
        if(listNode == null)
            return resultList;
        if(listNode.next == null)
        {
            resultList.add(new Integer(listNode.val));
        }
        ListNode head = listNode;
        ListNode p = listNode.next;
        ListNode pre = listNode;
        ListNode next;
        pre.next = null;
        while(p.next != null)
        {
            next = p.next;
            p.next = pre;
            pre = p;
            p = next;
        }
        p.next = pre;
        head = p;
        ListNode temp = head;
        while(temp != null)
        {
            resultList.add(temp.val);
            temp = temp.next;
        }
        return resultList;
    }
}

4.用两个栈实现队列

import java.util.Stack;

public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    
    public void push(int node) {
        stack1.push(node);
    }
    
    public int pop() {
        if(stack2.empty())
        {
            while(stack1.empty() != true)
            {
                stack2.push(stack1.pop());
            }
        }
        if(stack2.empty() == true)
        {
            return -1;
        }
        return stack2.pop();
    }
}

5.旋转数组的最小数字

import java.util.ArrayList;
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        if(array.length == 0)
            return 0;
        if(array[0] < array[array.length-1])
            return array[0];
        int start = 0;
        int end = array.length - 1;
        int flag = 0;
        while(start+1 != end)
        {
            int mid = (start+end)/2;
            if(array[mid] > array[start])
                start = mid;
            else if(array[mid] < array[end])
                end = mid;
            else{
                flag = 1;
                break;
            }
        }
        if(flag == 1)
        {
            int min = Integer.MAX_VALUE;
            for(int i=0;i<array.length;i++)
            {
                if(min >= array[i])
                    min = array[i];
            }
            return min;
        }
        return array[end];
    }
}

6.斐波那契数列

public class Solution {
    public int Fibonacci(int n) {
        int a = 0;
        int b = 1;
        if(n == 0)
            return 0;
        if(n == 1)
            return 1;
        int i = 2;
        int sum=0;
        while(i <= n)
        {
            sum = a + b;
            a = b;
            b = sum;
            i++;
        }
        return sum;
    }
}

7.跳台阶

public class Solution {
    public int JumpFloor(int target) {
        if(target == 1)
            return 1;
        if(target == 2)
            return 2;
        int a = 1;
        int b = 2;
        int sum = a + b;
        for(int i=3;i<=target;i++)
        {
            sum = a + b;
            a = b;
            b = sum;
        }
        return sum;
    }
}

8.变态跳台阶

public class Solution {
    public int JumpFloorII(int target) {
        return (int)Math.pow(2,target-1);
    }
}

9.矩形覆盖

public class Solution {
    public int RectCover(int target) {
        if(target == 1)
            return 1;
        if(target == 2)
            return 2;
        int a = 1;
        int b = 2;
        int sum = 0;
        for(int i=3;i<=target;i++)
        {
            sum = a+b;
            a = b;
            b = sum;
        }
        return sum;
    }
}

10.二进制中1的个数
n与n-1相与,为0说明就是2的n次幂

public class Solution {
    public int NumberOf1(int n) {
        if(n == 0)
            return 0;
        int count = 0;
        while((n&(n-1)) != 0)
        {
            count++;
            n = n & (n-1);
        }
        count++;
        return count;
    }
}

11.数值的整数次方

public class Solution {
    public double Power(double base, int exponent) {
        if(exponent == 0)
        {
            if(equalZero(base) == true)
                return 0;
            return 1;
        }
        if(exponent > 0)
        {
            return complex(base,exponent);
        }
        if(equalZero(base))
        {
            if(base > 0)
                return Double.POSITIVE_INFINITY;
            if(exponent % 2 == 0)
                return Double.POSITIVE_INFINITY;
            return Double.NEGATIVE_INFINITY;
        }
        return 1 / complex(base,exponent);
    }
    double complex(double base,int exponent)
    {
        double result = 1.0;
        if(exponent < 0)
            exponent = 0 - exponent;
        for(int i=0;i<exponent;i++)
            result = result * base;
        return result;
    }
    boolean equalZero(double base)
    {
        if(base >0 && base < 0.00000001)
            return true;
        if(base < 0 && base > -0.00000001)
            return true;
        return false;
    }
}

12.调整数组顺序使得奇数在偶数前面

import java.util.*;
public class Solution {
    public void reOrderArray(int [] array) {
        ArrayList<Integer> A = new ArrayList<>();
        ArrayList<Integer> B = new ArrayList<>();
        for(int i=0;i<array.length;i++)
        {
            if(array[i] % 2 == 1)
                A.add(array[i]);
            else{
                B.add(array[i]);
            }
        }
        int i =0;
        for(;i<A.size();i++)
        {
            array[i] = A.get(i);
        }
        A.clear();
        for(int j=0;j < B.size();j++)
        {
            array[i] = B.get(j);
            i++;
        }
        B.clear();
    }
}

13.链表中倒数的第K个节点
先判断链表长度够不够K个,够的话,在让一个节点先走K-1步,然后另一个节点再走K-1步

public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
        int length = 0;
        ListNode tempHead = head;
        while(tempHead != null)
        {
            length++;
            tempHead = tempHead.next;
        }
        if(k > length || k <=0)
            return null;
        ListNode before = head;
        ListNode after = head;
        for(int i=0;i<k-1;i++)
            before = before.next;
        while(before.next != null)
        {
            before = before.next;
            after = after.next;
        }
        return after;
    }
}

14.合并两个排序链表

public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        ListNode head = new ListNode(-1);
        ListNode result;
        result = head;
        while(list1 != null && list2 != null)
        {
            if(list1.val < list2.val)
            {
                head.next = list1;
                list1 = list1.next;
            }else{
                head.next = list2;
                list2 = list2.next;
            }
            head = head.next;
        }
        if(list1 != null)
        {
            head.next = list1;
        }else{
            head.next = list2;
        }
        return result.next;
    }
}

15.树的子结构
思路;写一个额外的函数doHasSubtree,这个doHasSubtree 用来判读是不是子树,然后主函数进行前序的一个递归遍历,去遍历每一个节点是不是包含这个子树。

public class Solution {
    public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        boolean flag = false;
        if(root1 == null || root2 == null)
            return false;
        if(root1.val == root2.val)
            flag = doHasSubtree(root1,root2);
        if(flag == true)
            return true;
        flag = HasSubtree(root1.left,root2);
        if(flag)
            return true;
        flag = HasSubtree(root1.right,root2);
        if(flag)
            return true;
        return false;
    }
    public boolean doHasSubtree(TreeNode root1,TreeNode root2)
    {
        if(root2 == null)
            return true;
        if(root1 == null && root2 != null)
            return false;
        if(root1.val != root2.val)
            return false;
        return doHasSubtree(root1.left,root2.left) && doHasSubtree(root1.right,root2.right);
    }
}

16.二叉树的镜像
直接左右两个树进行交换进行。

public class Solution {
    public void Mirror(TreeNode root) {
        if(root == null )
            return;
        if(root.left == null && root.right == null)
            return;
        TreeNode tempNode = root.right;
        root.right = root.left;
        root.left = tempNode;
        Mirror(root.left);
        Mirror(root.right);
    }
}

17.顺时针打印矩阵
思路:count进行计数,count用来记录遍历的时候遍历了矩阵中多少个数,当遍历的总数达到count则结束,同时设置左边界,右边界,上边界,下边界,每走从左到右(从右到左,从上到下,从下到上),那么适当地改变边界值。

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
        ArrayList<Integer> resultList = new ArrayList<>();
        int cols = matrix[0].length;
        int rows = matrix.length;
        int left=0,top=0,bottom=rows-1,right=cols-1;
        int count = 0;
        while(count < cols*rows)
        {
            for(int i=left;i<=right;i++)
            {
                resultList.add(matrix[top][i]);
                count++;
                if(count >= cols*rows)
                    return resultList;
            }
            top++;
            for(int i=top;i<=bottom;i++)
            {
                resultList.add(matrix[i][right]);
                count++;
                if(count >= cols*rows)
                    return resultList;
            }
            right--;
            for(int i=right;i>=left;i--)
            {
                resultList.add(matrix[bottom][i]);
                count++;
                if(count >= cols*rows)
                    return resultList;
            }
            bottom--;
            for(int i=bottom;i>=top;i--)
            {
                resultList.add(matrix[i][left]);
                count++;
                if(count >= cols*rows)
                    return resultList;
            }
            left++;
        }
        return resultList;
    }
}

18.包含min函数的栈
思路:设置成两个栈,一个栈用来存取最小数,每压入一个栈,就比较栈顶的数,然后就如果比栈顶的数大,那么最小栈就继续压入最小栈的栈顶的数。

import java.util.Stack;
public class Solution {

    Stack<Integer> stack1 = new Stack<>();
    Stack<Integer> stack2 = new Stack<>();
    public void push(int node) {
        stack1.push(node);
        if(stack2.empty())
        {
            stack2.push(node);
        }else{
            if(node <= (int)stack2.peek())
                stack2.push(node);
            else{
                stack2.push(stack2.peek());
            }
        }
    }
  
    public void pop() {
        stack2.pop();
        stack1.pop();
    }
  
    public int top() {
        return (int)stack1.peek();
    }
    
    public int min() {
        return (int)stack2.peek();
    }
}

19.栈的压入、弹出序列
思路:新建一个栈,从压栈序列中一直压栈,然后每次都去比较栈顶的值与弹栈序列的数是不是一样,不一样就继续压栈,直到一样了,说明弹栈序列的下标可以往后移动一个了,同时再次比较栈中的栈顶与弹栈序列的值是不是一样

import java.util.*;
public class Solution {
    public boolean IsPopOrder(int [] pushA,int [] popA) {
        if(pushA.length != popA.length)
            return false;
        Stack<Integer> stack1 = new Stack<>();
        int j = 1;
        stack1.push(pushA[0]);
        for(int i=0;i<popA.length;i++)
        {
            while(j < pushA.length && stack1.peek() != popA[i])
            {
                stack1.push(pushA[j]);
                j++;
            }
            if(j >= pushA.length && stack1.peek() != popA[i])
                return false;
            stack1.pop();
        }
        return true;
    }
}

20.从上到下打印二叉树
思路:就是建个队列,依次入队,就是二叉树的层次遍历

public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> resultList = new ArrayList<>();
        if(root == null)
            return resultList;
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        while(queue.size() != 0)
        {
            TreeNode tempRoot = queue.poll();
            if(tempRoot.left != null)
                queue.offer(tempRoot.left);
            if(tempRoot.right != null)
                queue.offer(tempRoot.right);
            resultList.add(tempRoot.val);
        }
        return resultList;
    }
}

21.二叉树的后序遍历序列

public class Solution {
    public boolean VerifySquenceOfBST(int [] sequence) {
        if(sequence.length == 0)
            return false;
        return verify(sequence,0,sequence.length-1);
    }
    public boolean verify(int [] sequence,int begin,int end)
    {
        if(begin == end)
            return true;
        int rootValue = sequence[end];
        int leftBegin = -1;
        int leftEnd = -1;
        int rightBegin = -1;
        int rightEnd = -1;
        for(int i=begin;i<end;i++)
        {
            if(sequence[begin] < rootValue)
                leftBegin = begin;
            if(sequence[i] < rootValue)
                leftEnd = i;
            else{
                if(rightBegin == -1)
                    rightBegin = i;
                rightEnd = i;
            }
        }
        if(rightBegin < leftEnd && rightBegin != -1)
            return false;
        return verify(sequence,leftBegin,leftEnd) && verify(sequence,rightBegin,rightEnd);
    }
}

22.二叉搜索树的后序遍历序列
思路:二叉树后序遍历最后的一个数是数的根结点的值,然后就每次都一趟遍历这个序列,记录下来左子树的最优的下标位置,和右子树的最左的下标位置,然后如果右子树的最左下标位置比左子树的最右下标位置小,那么就不是后序遍历序列

public class Solution {
    public boolean VerifySquenceOfBST(int [] sequence) {
        if(sequence.length == 0)
            return false;
        return verify(sequence,0,sequence.length-1);
    }
    public boolean verify(int [] sequence,int begin,int end)
    {
        if(begin == end)
            return true;
        int rootValue = sequence[end];
        int leftBegin = -1;
        int leftEnd = -1;
        int rightBegin = -1;
        int rightEnd = -1;
        for(int i=begin;i<end;i++)
        {
            if(sequence[begin] < rootValue)
                leftBegin = begin;
            if(sequence[i] < rootValue)
                leftEnd = i;
            else{
                if(rightBegin == -1)
                    rightBegin = i;
                rightEnd = i;
            }
        }
        if(rightBegin < leftEnd && rightBegin != -1)
            return false;
        return verify(sequence,leftBegin,leftEnd) && verify(sequence,rightBegin,rightEnd);
    }
}```

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《剑指offer》 java版本 牛客网全AC 的相关文章

  • 面向对象7大原则

    单一职责 一个对象应该只包含单一的职责 并且该职责被完整地封装在一个类中 开放闭合原则 开闭原则就是指软件实体应当尽量保证在不修改原有代码的情况下 对软件进行扩展 开闭原则是面向对象设计的基石 里氏替换原则 根据 运行时子类对象覆盖父类对象
  • 一文搞懂ES6解构

    ES6引入了一个新的语法特性 名为解构 destructuring 把这个功能可以看作是一个结构化赋值 structured assignment 方法 1 解构简介 1 1 考虑下面的场景 给a b c赋值需要借用一个中间变量tmp fu
  • linux两台服务器互相备份文件(sshpass + crontab)

    crontab crontab是linux系统自带的定时调度软件 可用于设置周期性被执行的指令 一般用在每天的非高峰负荷时间段运行作业 可在无需人工干预的情况下运行作业 支持在一周或一月中的不同时段运行 crontab命令允许用户提交 编辑
  • Java 大后端各种架构图汇总

    国产 Star 破 10w 的开源项目 前端包括管理后台 微信小程序 后端支持单体和微服务架构 功能涵盖 RBAC 权限 SaaS 多租户 数据权限 商城 支付 工作流 大屏报表 微信公众号等等功能 Boot 项目地址 https gite
  • c++ uml时序图

    时序图 通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作 时序图和流程图的区别 时序图强调对象之间的交互与时序关系 流程图则是针对一个过程或者活动进行全面而细致的展开 时序图主要描绘多个对象之间的复杂关系 流程图通常描述单一对象
  • Windows11 安装与完全卸载 Anaconda

    文章目录 1 安装 Anaconda 1 1 下载 1 2 安装 1 3 配置环境变量 1 4 检查是否安装成功 2 完全卸载 Anaconda 1 安装 Anaconda 1 1 下载 Anaconda 官网链接 https www an
  • jk触发器改为四进制_异步计数器

    异步计数器 计数器的分类 异步 二进制 十进制 74290 数电 这一节介绍异步二进制计数器 计数器功能 计数器是对输入脉冲个数进行计数的时序电路 计数器除了直接用于计数外 还可以用于实现定时器 分频器 程序控制器 信号发生器等时序电路 是
  • 操作系统实验页面调度(内含可运行C/C++代码)

    更新了 更新了 都支楞起来 一 实验内容及要求 首先 生成一个随机的页面引用串 其中页码的范围为0 9 将这个随机页面引用串应用到每个算法 记录每个算法引起的缺页次数 列出每次页面置换的换出页序号 计算缺页率 系统分配给用户的页面帧的数量可
  • MySQL锁 脑图

    学习MySQL锁 时做的脑图 记个笔记
  • 软件开发过程中的思维方式 -- 如何分析问题

    这是 ZY 第 16 篇原创技术文章 今天这篇文章不谈技术 想聊聊软件开发过程中的一些思维方式 以及如何去深入挖掘问题的核心 如何去看清问题的本质 一 分析问题的重要性 我们在软件开发过程中 往往会遇到很多问题 不管是对需求合理性的探讨 还
  • 百度旋转验证码识别方案

    废话不多说 直接上代码 需要看识别效果的小伙伴可以直接访问这里 https www detayun cn tool verifyCodeHomePage 1679620548194 代码如下 author dengxinyan import
  • vue 实现图片懒加载

    一 懒加载的目的 有些页面可能展示的是大量的图片 如果我们一次性加载所有图片就会浪费性能 影响用户体验 所以我们就会懒加载这些图片 即可视区域之外的图片不加载 随着页面的滚动 图片进入可视区域 则触发图片的加载显示 优点 页面加载速度快 用
  • SSM 框架原理简介及解析

    简介 ssm框架就是标准的MVC模式 标准的SSM框架有四层 分别是dao层 service层 controller层和View层 使用spring实现业务对象管理 使用spring MVC负责请求的转发和视图管理 mybatis作为数据对
  • 2023最新版本Pycharm安装教程【2023.1.3】

    前言 本文方法可以安装使用截止当前2023 1 3最新版本Pycharm 过程非常简单 按照下面的步骤来一分钟即可搞定 1 下载安装 已经安装过的可以跳过该步骤 下载 到官网地址下载正版安装包JetBrains Pycharm官网下载地址
  • android手机相册多张上传,一键批量上传手机照片到QQ相册功能 节省手机流量

    十一双假期刚刚结束 无论回家还是出游 不管是家里的庭院小景还是一路上的美景扑面 你一定会拿起手机不断按下快门 记录每一个美的瞬间 如今长假归来 我们都希望能够马上和好友一起分享假期的美景趣事 可是 手机中照片数量太多 如何才能实现快速又便捷
  • Nuget配置修改-globalPackagesFolder(默认包存放位置)

    环境 nuget windows2010 nuget默认的全局包下载地址一般为 C Users username nuget packages 项目多了之后 nuget下载的包就回慢慢的变多 导致c盘被大量占用 这时候我们想要将nuget的

随机推荐

  • (三-3)机器学习中调参的基本思想+随机森林+实例(共3小节,文章代码即文章中所有的代码)

    通过画学习曲线 或者网格搜索 我们能够探索到调参边缘 代价可能是训练一次模型要跑三天三夜 但是在现实中 高手调参恐怕还是多依赖于经验 而这些经验 来源于 1 非常正确的调参思路和方法 2 对模型评估指 标的理解 3 对数据的感觉和经验 4
  • HEVC 编解码资源

    资料 overview 等 csvt系列详见HHI主页 适合 入门 Encoder Description 适合入门 Recommendation H 265 pdf 2016 12 22 标准文档 适合 提高 解码 High Effici
  • 订单管理系统功能

    订单管理系统的工作流程是首先对客户的订单信息进行接收 然后对订单进行处理 及时掌握交易动态 在有突发状况发生时及时反馈 订单管理系统是物理管理系统中不可缺少的一部分 商淘云跟您分享一般的订单管理系统有哪些功能 1 业务流程管理 包括订单管理
  • 程序员屌丝逆袭之路不是炒股

    最近这一段时间 你身边是不是大多数人都在谈论股票 那就对了 无论走到哪都能听到 今天又绿了 我的股票跌停了 冲上5000点啦 等等之类的话 我还不是一个股民 一直都不是 因为不懂 不敢入市 因为有人跳楼 害怕入市 最主要的原因是 因为手里没
  • 3.30 OrCAD中原理图文件怎么进行DRC检测?

    笔者电子信息专业硕士毕业 获得过多次电子设计大赛 大学生智能车 数学建模国奖 现就职于南京某半导体芯片公司 从事硬件研发 电路设计研究 对于学电子的小伙伴 深知入门的不易 特开次博客交流分享经验 共同互勉 全套资料领取扫描文末二维码 温馨提
  • 如何判断用户是否已关注公众号

    一 微信公众平台配置 1 获取appid appsecret 添加白名单 登录微信公众平台 进入基本配置 开发中需要用到两个参数 appId和appSecret appSecret只展示一次 需保存下来 否则需要重置获取 获取access
  • 以太坊day(4)

    以太坊day 4 一 遇见的错误 1 1 Error Invalid JSON RPC response 二 goland上进行合约的开发 2 1 需要的源 2 2 合约文件 2 3 编译合约 2 4 部署合约 2 5 获取合约实例 2 6
  • AIGC的1000+篇文章总结

    AIGC的1000 篇文章总结 本文收集和总结了有关AIGC的1000 篇文章 由于篇幅有限只能总结近期的内容 想了解更多内容可以访问 http www ai2news com 其分享了有关AI的论文 文章 图书 query AIGC AI
  • vue中的函数式组件

    用过react的同学都知道 函数式组件在react中的应用是很流行的 那如何在vue中使用函数式组件呢 什么是函数式组件 熟悉react的同学应该都知道 react中的函数式组件其实就是一个接收一些prop的函数 然后返回HTML vue的
  • Active Directory配置与应用

    Active Directory 配置与应用
  • 菜鸟学习nodejs--回调函数

    什么是回调函数 如果大家使用过JQuery 那么会掉函数就像家常便饭一样 例如我们经常会给一个事件传一个function的参数 其实这就是回调函数 回调函数就是我们所说的异步 如果还是有点蒙 那么我们来举个例子 我们新建一个index1 h
  • 基于混沌系统和DNA算法的RGB图像加密(Matlab代码实现)

    目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 1 概述 本文介绍了基于混沌系统和DNA编码的彩色数字图像加密 解密 抗噪声性能分析以及抗裁剪性能分析 2 运行结果 3 参考文献 1 李红凯 基于混沌理论和DNA序列编码的
  • Qt之点击QLineEdit显示软键盘

    点击QLineEdit显示软键盘 在嵌入式开发时 不能通过鼠标键盘输入是很常见的 这时候就需要通过软件层 实现软键盘和输入法来满足用户需求 一般来说 软键盘的显示通常和QLineEdit的点击事件挂钩 而QLineEdit与QPushBut
  • opencv之透视变换

    透视变换 Perspective Transformation 是将图片投影到一个新的视平面 Viewing Plane 也称作投影映射 Projective Mapping 原理 通用的变换公式为 u v是原始图片左边 对应得到变换后的图
  • VUE嵌套路由导致父组件重复渲染BUG(虚惊一场)

    哲神最近在做VUE开发 开发一个模块需要用到嵌套路由 路由如下 path dashboard component gt import views dashboard index name dashboard meta title 数据看板
  • 详解域名和DNS

    目录 一 概念名词 1 域名 1 1域名 1 2二级域名和多级域名 1 3域名对于我们有什么用呢 2 DNS Domain Name System 域名系统 2 1 什么是域名系统 3 CDN Content Delivery Networ
  • golang操作MySQL的具体案例

    golang操作MySQL的具体案例 代码篇的基础操作 package main import fmt github com go sql driver mysql github com jmoiron sqlx type Profile
  • 云服务器只能显示控制台吗,云服务器控制台使用方法

    云服务器控制台使用方法 内容精选 换一换 用户在购买弹性云服务器时会选择弹性云服务器的规格及登录方式 如果选择密钥对登录方式 需要选择已有密钥对或创建新的密钥对 如果没有可用的密钥对 请在控制台创建新的密钥对进行使用 在云服务器控制台左侧导
  • Pytorch(GPU)配环境原理:cuda+cudnn+pytorch配环境的每一步到底干了些什么?

    作者 18届cyl 时间 2022 5 11 参考文章 https blog csdn net qq 42406643 article details 109545766 最近帮舍友配pytorch cuda cudnn环境的时候 回想起来
  • 《剑指offer》 java版本 牛客网全AC

    1 二维数组中的查找 public class Solution public boolean Find int target int array if array length 0 array 0 length 0 return fals