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

    每日算法:Day 10

    作者:TeddyZhang,公众号:算法工程师之路 Day 10, Linux知识点走起~ 1 编程 【剑指Offer】顺时针打印数组 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字 ,例如,如果输入如下4 X 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 int top() { return sta.top(); } int min() { return minSta.top(); } }; 2 概念

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

    【优选算法练习】day10

    你必须设计并实现线性时间复杂度的算法且不使用额外空间来解决此问题。 你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。 left~mid之间进行寻找 right = mid; } return nums[left]; } }; 4.运行结果 总结 今天是算法练习的第 10天。

    33920编辑于 2023-10-15
  • 来自专栏CSDNToQQCode

    基础算法练习20010、合作工程

    :【服务百万技术人次】 专栏地址:【https://blog.csdn.net/feng8403000/category_11958599.html】  ----       为了帮助很多想搞算法但又害怕自己搞不定的孩子们 ,老师付准备了200个入门的逻辑练习题,在这200个逻辑练习题下可以加强你们的基础算法能力,以次为基础当面对正式的算法题目的时候可以得心应手的面对。  题解: power变化前甲20,乙30 a =1/20; b =1/30; power变化后:甲原来的4/5,乙原来的9/10 a=a*(4/5); b=b*(9/10); 测试最大结果: a=4/100 /** * * @author hongmuxiangxun 红目香薰 付文龙 老师付 laoshifu * */ public class demo10 当前难度,小学五年级奥数,但是小学五年级不会写代码哦,咱们练习的是思路变成编码,所以别急,慢慢来。

    39020编辑于 2022-11-29
  • 来自专栏编码如写诗

    算法

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

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

    算法

    我扫了一眼代码,心想这挺经典的,来,我给你捋一捋。 ##算法:House Robber 题目理解 题目说你是专业小偷,计划偷窃沿街的房屋。 这的关键点在于理解动态规划的状态转移。每家有两种选择:偷或不偷。如果偷这一家,上一家就不能偷,所以是dp[i-2]+nums[i]。如果不偷这一家,就是dp[i-1]。取两者最大值就是最优解。

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

    算法

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

    13710编辑于 2026-03-02
  • 来自专栏猫头虎博客专区

    LeetCode 6-10 详解 Java版 ( 万字 图文详解 LeetCode 算法6-10 =====>>> <建议收藏>)

    总结 比较简单的一道,主要是在考判断是不是溢出,又是轻松的一天! 第8: String to Integer 题目描述(中等难度) 将一个字符串转为整型。 解法二 在第 7 道我们写了倒置 int 的算法,这里当然可以用到了,只需要判断倒置前后相不相等就可以了。 第10 :Regular Expression Matching 题目描述(困难难度) 一个简单规则的匹配,「点.」代表任意字符,「星号*」 代表前一个字符重复 0 次或任意次。 总 这道对于递归的解法,感觉难在怎么去求时间复杂度,现在还没有什么思路,以后再来补充吧。整体来说,只要理清思路,两种算法还是比较好理解的。 今天我们一起学习了LeetCode 6-10 算法分析,感谢大家阅读,觉得不错记得收藏哦! 喜欢 请点个 + 关注

    30110编辑于 2024-04-07
  • 来自专栏C 与 Java 数据结构研习志

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

    引言:当你作为一个初学Java算法的小白,可以点进来看看我这些算法基础,能够很好的帮助你打好算法基本功。打好基础,才能更上一层楼。速速开始学起这些算法吧! * Description: * User:Lenovo * Date:2025-05-24 * Time:17:29 */ public class Main10 { public Scanner sc=new Scanner(System.in); //方法一: // int a=sc.nextInt(); // int b=a%10 ; // int c=a/10; // System.out.print(b); // System.out.print(c); //---- x=sc.nextInt(); int y=sc.nextInt(); System.out.println((x+y)*(x+y)*(x+y)); } } 10

    47310编辑于 2025-05-28
  • 来自专栏cwl_Java

    C++经典算法-对10个数进行排序

    题目 题目:对10个数进行排序 2. 分析 程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。 3. 代码示例 #define N 10 main() {int i,j,min,tem,a[N]; /*input data*/ printf("please

    83330编辑于 2022-11-30
  • 来自专栏五分钟学算法

    经典算法:排序算法

    序列的变化情况采样如下: 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
  • 来自专栏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、设计一个子模块打印函数 例如给定左上角和右上角打印一个矩阵等打印函数,记住一些常用的打印函数,可以让我们更快地解决问题

    90110发布于 2020-03-28
  • 来自专栏花落的技术专栏

    常见算法

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

    1K00编辑于 2021-12-05
  • 来自专栏花落的技术专栏

    常见算法

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

    64930发布于 2021-11-25
  • 来自专栏玩转大前端

    js算法

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

    1.7K51编辑于 2022-08-15
  • 来自专栏chenchenchen

    OJ算法

    #include <stdio.h> #include <string.h> #define MAX 1000 struct Node{     int v,net; }; struct Node node[MAX]; int main(){     int n,e,t,i,x,y,z,head[MAX],que[MAX],map[MAX/2][MAX/2],qh,qt;     while(scanf("%d %d",&n,&e)!=EOF){         memset(head,-1,sizeof(head));         for(i = 0;i < e;i++){             scanf("%d %d",&x,&y);             node[i].v = y;             node[i].net = head[x];             head[x] = i;         }         scanf("%d",&t);         while(t--){             z = 0;             memset(map,0,sizeof(map));             qh = qt = 1;             scanf("%d %d",&x,&y);             if(x == y){                 printf("yes\n");                 continue;             }             que[qt++] = x;             while(qh < qt){                 for(i = head[que[qh]];i != -1;i = node[i].net){                     if(map[que[qh]][node[i].v] == 0){                         map[que[qh]][node[i].v] = 1;                         que[qt++] = node[i].v;                     }                     if(node[i].v == y){                         z = 1;                         break;                     }                 }                 if(z == 1) break;                 qh++;             }             if(z == 1) printf("yes\n");             else printf("no\n");         }         printf("\n");     }     return 0; }

    63530编辑于 2023-01-30
  • 来自专栏酒楼

    算法1

    计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

    49510编辑于 2023-12-09
  • 来自专栏Java后端开发博客

    LeetCode 算法

    # LeetCode 算法 简单 两数之和 回文数 罗马数字转整数 合并两个有序链表 每天一道,没坚持下去 # 简单 # 两数之和 题目地址 (opens new window) 给定一个整数数组 不在哈希表中,key为8,value为2,存入哈希表中;遍历到元素2,与之对应的元素应该是target-2=6,6在哈希表中;因此6和2就是我们要找的两个元素,对应的下标分别是0,3,将数组[0,3]返回即可,算法到此结束 算法 我们直接将以上递归过程建模,同时需要考虑边界情况。 如果 l1 或者 l2 一开始就是空链表 ,那么没有任何操作需要合并,所以我们只需要返回非空链表。 方法二:迭代 思路 我们可以用迭代的方法来实现上述算法算法 首先,我们设定一个哨兵节点 prehead ,这可以在最后让我们比较容易地返回合并后的链表。我们维护一个 prev 指针,我们需要做的是调整它的 next 指针。

    63210编辑于 2022-12-25
  • 来自专栏python3

    算法3

    ---- 摘自传智播客公开课 ---- package test; import java.util.Scanner; public class Arithmetic3 { //设 会根据输入的年龄值 // 显示其所属年龄段 /* 0 ~ 9 儿童 10 System.out.println("-------------"); //方案二 System.out.print("方案二:"); switch(num/10 = {"儿童","少年","青年","青壮年","壮年","中年","中老年","老年","老老年","老老老年"}; System.out.println(strArry[num/10

    39010发布于 2020-01-10
  • 来自专栏Java编程指南

    【面试算法】水仙花算法详解

    算法题目 题目:打印出所有的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次方。 算法分析 根据题目分析,水仙花是三位数是 个位+十位+百位 自身次方等于该数本身,那么计算一个数是否是水仙花数要将这个数的 个位数 十位数 百位数给分解出来伪代码如下: a = i/100; //获取3位数中百位的数 b=i%100/10; //获取3位数中十位的数 c=i%100%10; //获取3位数中个位的数 这样就可以通过循环来过滤出一个区间的水仙花数量了 算法java实现 public static void main(String[] args) { //水仙花获取区间最大数 int end=1000; ; //获取3位数中十位的数 c=start%100%10; //获取3位数中个位的数

    1.2K20发布于 2019-08-02
  • 来自专栏Java学习从基础到就业

    算法】三道理解算法思想——二分查找算法

    二分查找算法 本篇文章中会带大家从零基础到学会利用二分查找的思想解决算法,我从力扣上筛选了三道,难度由浅到深,会附上题目链接以及算法原理和解题代码,希望大家能坚持看完,绝对能有收获 文章顺序: 题目链接=》算法原理=》代码呈现 思想总结: 在某种判断条件下将区间⼀分为⼆,然后舍去其中⼀个区间,然后再另⼀个区间内查找。 需要注意的是二分查找算法不是只可以在有序的的数组中使用,只要一组数据在某个值的前后性质具有单调性都可以使用,也就是具有二段性。 1.二分查找 题目链接: https://leetcode.cn/problems/binary-search/ 算法思路: 。 当我们找到「⼆段性」的时候,就可以尝试⽤「⼆分查找」算法来解决问题。

    35010编辑于 2024-04-08
领券