首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏算法工程师之路

    每日算法:Day 9

    作者:TeddyZhang,公众号:算法工程师之路 Day 9, Python知识点走起~ 1 编程 【剑指Offer】树的子结构 输入两棵二叉树A,B,判断B是不是A的子结构。 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9} 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 思路: 这个使用递归的思路就很简单,一般二叉树用递归的方法很多,比如二叉树的遍历也可以使用递归的方法。 pRoot->right = tmp; Mirror(pRoot->left); Mirror(pRoot->right); } }; 2 概念

    50820发布于 2019-08-13
  • 来自专栏C/C++学习

    【优选算法练习】day9

    { if(lsum[i] == rsum[i]) return i; } return -1; } }; 4.运行结果 总结 今天是算法练习的第 9天,继续加油。

    26510编辑于 2023-10-15
  • 来自专栏Linux云计算网络

    算法导论2-9章补充几道

    int arr[], int nLeft, int nRight); 6 int Merge(int arr[], int p, int q, int r); 7 8 //用归并排序找逆序对 9 int i = 0; i < 5; i++) 70 cout << arrT[i] << " "; 71 return 0; 72 } 2、习题9.3-7,设计一个O(n)时间的算法 ,对于一个给定的包含n个互异元素的集合S和一个正整数 k<=n,该算法能够确定S中最接近中位数的k个元素。 譬如数组:<5,7,10,3,6,2,8,9,1,11,12>,中位数为6,如果k=3,最接近6的3个元素是<5,7,4>或<5,7,8>;如果k=4,则最接近6的4个元素是<5,7,4,8>。 请设计一个O(lgn)时间的算法来找出数组X 和Y中所有2n个元素的中位数。 譬如:X:<1,2,3,4,7,9>; Y:<2,5,6,7,10,11>; 中位数为数组Y中的6.

    83550发布于 2018-01-11
  • 来自专栏福大大架构师每日一题

    deepseek VS chatgpt (400)-- 算法导论25.2 9

    这个过程可以通过Tarjan算法或Kosaraju算法实现,两者的时间复杂度都是线性的,即 。 3. 强连通分量分解可以使用 Kosaraju 算法或 Tarjan 算法,其时间复杂度为 。 • 步骤二:计算有向无环图的传递闭包:在得到有向无环图后,我们可以使用给定的算法在 时间内计算其传递闭包。 现在,计算SCC的时间复杂度是O(V + E),比如用Kosaraju算法或者Tarjan算法。 或者原的条件允许将缩点后的DAG的节点数和边数代入f的参数,但题目中的结论中的参数是原图的V和E。所以可能需要进一步分析。 假设将原图分解为SCC的时间是O(V + E),这没问题。 例如: • 使用Tarjan算法或者Kosaraju算法找SCC。 • 构建缩点后的DAG。 • 使用已有的DAG传递闭包算法计算缩点后的传递闭包。 • 生成E*的边。

    33210编辑于 2025-02-19
  • 来自专栏福大大架构师每日一题

    文心一言 VS chatgpt (9)-- 算法导论2.3 7 3.1 1

    # 七、描述一个运行时间为O(nlgn)的算法,给定n个整数的集合S和另一个整数,该算法能确定 S中是否存在两个其和刚好为工的元素。 文心一言: 这里是一个运行时间为O(nlgn)的算法,可以用来确定集合 S 中是否存在两个元素,它们的和恰好为工。 chatgpt: 一个运行时间为O(nlgn)的算法是先对集合S进行排序,然后使用双指针算法从集合的两端开始向中间扫描。初始化左右指针分别指向S的第一个和最后一个元素。

    26010编辑于 2023-06-08
  • 来自专栏明天依旧可好的专栏

    LeetCode组:第9-回文数

    1.题目:回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

    52420发布于 2020-04-08
  • 来自专栏编码如写诗

    算法

    我扫了一眼代码,心想这挺经典的,来,我给你捋一捋。 ##算法:Word Break 题目理解 题目说给你一个字符串 s 和一个单词列表 wordDict。 这的关键点在于理解动态规划的状态转移。dp[i] 表示前 i 个字符能否拆分,如果某个位置 j 之前能拆分,而且 s[j:i] 是字典里的词,那 dp[i] 就能拆分。

    17210编辑于 2026-03-02
  • 来自专栏KEN DO EVERTHING

    每日一9

    点击上方“java从心”,置顶公众号 每天进步一丢丢,连接梦与想 生活有多美好,取决于你对它有多热爱 上回顾与解析 public class Question8 { public static + 1 = 10000000 000000000000000000000000 即Integer.MAX_VALUE + 1 = Integer.MIN_VALUE 想不到吧,这个记住就好了 每日一 public class Question9 { public static void main(String[] args) { int minutes = 0 ;

    51410发布于 2019-01-17
  • 来自专栏编码如写诗

    算法

    我扫了一眼代码,心想这挺经典的,来,我给你捋一捋。 ##算法:House Robber 题目理解 题目说你是专业小偷,计划偷窃沿街的房屋。 偷第1和第3家,1+3=4 输入 [2,7,9,3,1],输出 12。偷第1、3、5家,2+9+1=12 说白了就是:选一些数,这些数不能相邻,要让它们的和最大。 main() { // 测试用例 fmt.Println(rob([]int{1, 2, 3, 1})) // 4 fmt.Println(rob([]int{2, 7, 9, 这的关键点在于理解动态规划的状态转移。每家有两种选择:偷或不偷。如果偷这一家,上一家就不能偷,所以是dp[i-2]+nums[i]。如果不偷这一家,就是dp[i-1]。取两者最大值就是最优解。

    20410编辑于 2026-03-02
  • 来自专栏编码如写诗

    算法

    我扫了一眼代码,心想这挺经典的,来,我给你捋一捋。 ##算法:Best Time to Buy and Sell Stock 题目理解 题目说给你一个数组 prices,prices[i] 是第 i 天的股票价格。 设计算法计算你能获取的最大利润。 注意不能在买入前卖出,也就是买入日期必须在卖出日期之前。 举例说明: 输入 [7,1,5,3,6,4],输出 5。 这的关键点在于理解一次遍历的思路。我们要找最低的买入价和最高的卖出价,但不能简单找最小值和最大值,因为买入必须在卖出之前。所以要用一次遍历,维护历史最低价,同时计算每次卖出的利润。

    13410编辑于 2026-03-02
  • 来自专栏用户8907256的专栏

    【大战蓝桥杯】 算法·每日一(详解+多解)-- day9

    【大战蓝桥杯】 算法·每日一(详解+多解)-- day9 ✨博主介绍 和为 k 的子数组 解题思路 ✨博主介绍 作者主页:苏州程序大白 作者简介:CSDN人工智能域优质创作者,苏州市凯捷智能科技有限公司创始之一 示例 1: 输入:nums = [1,1,1], k = 2 输出: 2 解释: 此 [1,1] 与 [1,1] 为两种不同的情况 示例 2: 输入:nums = [1,2,3], k 提示: 1 <= nums.length <= 2 * 104 -1000 <= nums[i] <= 1000 -107 <= k <= 107 解题思路 题目要求的是 “连续子数组”, 因此此和排序没关系

    39620编辑于 2022-05-10
  • 来自专栏Python数据结构与算法

    牛客网刷-(9)

    27110编辑于 2024-01-18
  • 来自专栏C 与 Java 数据结构研习志

    算法分享】小白必备的算法基础

    引言:当你作为一个初学Java算法的小白,可以点进来看看我这些算法基础,能够很好的帮助你打好算法基本功。打好基础,才能更上一层楼。速速开始学起这些算法吧! Integer.parseInt(all.substring(3,6)), Integer.parseInt(all.substring(6,9) )-2*Math.pow(x,5)-5*Math.pow(x,2)+6*x+7)); } } 这使用了Math.pow()方法他是double类型,所以在输出的时候需要强转成int类型 9

    47110编辑于 2025-05-28
  • 来自专栏MapleYe

    算法】打印算法总结

    前言 本文记录了我对打印算法的总结。先说说什么事打印算法,就是按照一定的规则打印二维矩阵。 2 9 10 11 12 15 11 7 3 13 14 15 16 16 12 8 4 接下来,将会有几道打印算法 例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ========= 13 9 5 1 14 10 6 2 15 11 7 3 16 12 8 4 例如:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 打印结果为:1,2,3,4,8,12,16,15,14,13,9, 5,6,7,11, 10 【要求】 额外空间复杂度为 例如在第一二道,我们都是通过解决外矩阵后,再解决内矩阵的方式解决问题的。 2、设计一个子模块打印函数 例如给定左上角和右上角打印一个矩阵等打印函数,记住一些常用的打印函数,可以让我们更快地解决问题

    90010发布于 2020-03-28
  • 来自专栏五分钟学算法

    经典算法:排序算法

    序列的变化情况采样如下: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84 请问采用的是以下哪种排序算法

    1.5K10发布于 2019-10-23
  • 来自专栏灰灰的数学与机械世界

    竞赛好暑假练习9

    利用拆分区间解决一道带有绝对值的三角函数的二重积分问题 计算二重积分 \displaystyle \iint\limits_{D}|\cos (x+y)|dxdy ,其中 D 是由 0\leq x \leq \pi , 0 \leq y \leq \pi 所确定的闭区域。 分析:关键在于要去掉积分函数的绝对值,此时重要的就是积分区间的划分。 解析:由题意得 0 \leq x+y \leq 2\pi ,所以根据余弦函数的性质,可以将区间划分三个小区间,有 \cos(x+y)=\begin{cases}\di

    66240编辑于 2022-11-23
  • 来自专栏花落的技术专栏

    常见算法

    为了求出岛屿的数量,我们可以扫描整个二维网格。如果一个位置为 11,则以其为起始节点开始进行深度优先搜索。在深度优先搜索的过程中,每个搜索到的 11

    1K00编辑于 2021-12-05
  • 来自专栏玩转大前端

    js算法

    面试发现自己的算法知识有不足,因此参考了多篇文章学习总结。 冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 冒泡排序最好的时间复杂度为O(n),是一种稳定排序算法。 快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 不指定算法的数组排序 let arr = [16, 31, 12, 1, 9, 12, 10]; arr.sort((a, b) => a - b); // 从小到大 4. 譬如[7, 8, 4, 9, 9, 15, 3, 1, 10]这个数组的计算值是 11 ( 15 - 4 ) 而不是 14 (15 - 1),因为 15 的下标小于 1。

    1.7K51编辑于 2022-08-15
  • 来自专栏花落的技术专栏

    常见算法

    为了求出岛屿的数量,我们可以扫描整个二维网格。如果一个位置为 11,则以其为起始节点开始进行深度优先搜索。在深度优先搜索的过程中,每个搜索到的 11

    64930发布于 2021-11-25
  • 来自专栏酒楼

    算法1

    输入:abc 输出:3 输入:aaa 输出:1 9.数字颠倒(StringBuffer.reverse()) 描述 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有

    49310编辑于 2023-12-09
领券