| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 挑战坚持每天写算法题一个月!!! -> 正文阅读 |
|
[数据结构与算法]挑战坚持每天写算法题一个月!!! |
目录 前言因为最近参加了csdn的一个大博主的活动第一届LeetCode刷题打卡赢现金活动,坚持每天写写力扣算法题一个月,我觉得这个活动很有意义,因为每天能写一道算法题很容易,但是坚持一周呢?一个月呢?一年呢?能坚持的人少之又少,但是如果坚持每天写几道算法题并坚持很久,也是会有很大的收获的,为了自己的目标,我们冲就完事!!! 顺便给大佬谢谢这个大佬提供这个机会!! 大家也可以去大佬的博客看看干货!!! 向大佬学习!! ?2021-10-8题目
给你两个按 非递减顺序 排列的整数数组?nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。 示例一:
示例二: 输入:nums1 = [1], m = 1, nums2 = [], n = 0 输出:[1] 解释:需要合并 [1] 和 [] 。 合并结果是 [1] 。 示例三:
解题思路首先我们得把两个数组按照指定切片,并且不能创建新的内存。
然后我们在把这两个数组给加到nums1这个数组中!!
然后我们就可以用随便一种排序算法将这个数组排序,我就演示冒泡排序了。 代码
其他思路其实排序这个算法是O(n)了效率不是很高,如果用双指针就能提高很多的效率复杂度就变成O(m+n),我先说我写这个题的过程,我一共用了三个思路,前两个都有问题,我直接裂开了,从6.00写到10.00,真是一杯茶,一支烟,一道力扣写一天。我的第一个思路是创建一个新的内存,我但是没有看清题意然后就直接创建一个新的地址,然后就提交的时候发现pycharm和力扣的结果总是不一样,我都怀疑力扣出问题了,然后我才知道我不能创建新的地址,所以我手写了第二种思路,但是我又犯了一个致命的错误,就是每次添加数组的长度会改变,然后这个没办法判断下标,其实这个可以从右向坐移动指针,来很有效的解决这个问题,这个问题还是我现在在写这个博客的时候,去大佬群里一个大佬给了我提醒,我真的是菜的垃圾呀,一个初级算法我能写好几个小时,所以这次更要加油了!! 接下来我给大家看一下我写的第二个思路的手稿!!! ? ? ?今天虽然就写了一题,但是我觉得我进步还是非常大的,如果每天坚持下去,我相信我能收获更多!!! 2021-10-9题目数组中的重复数字
示例一: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 二维数组中的查找
示例一:
给定 target?=? 给定?target?=? 解题思路数组中的重复数字这个算是一个超级简单的算法题,但是我写这个题简直了呀,开始不想用暴力解法,然后写了半小时,发现越来学懵逼,然后最后用暴力解法,但是!!!!暴力解法超时就很难受!!! 所以我就看了官方的一个题解,我看完以后就是真的很简单,我简直服了我这个智商,是用python间的几行代码就能完成的事我写了半个小时,哭了呀家人!! 话不多说直接上题解:
二维数组中的查找这个题在python中其实能卡一个bug----用 in 一下子就出来了,时间复杂度也是n。 但是我们刷算法的目的是什么?就是为了最优的解决这个问题,让它的效率最大化!! 所以我们不应该取巧的。 这个题主要的思路就是以右上角开始,如果目标变量比右上角的数小,就向左移一列,如果目标标量比右上角的数大就下一移动到下一行的数组中,由此来判断,最后是否能够在这个二维数组里面找到这个目标变量! 两者的复杂度: ? 接下来我就给大家把这这两个的代码都放在上面!! 代码合并两个有序数组
二维数组的查找 一:
二:
总结:2021-10-9. 总结今天的成果,目前是上午一道下午一道,感觉今天在写这两题的时候收获很多,尤其查找二维数组的这个新思路,我觉得很让我有一个新的思路,可能这就是刷算法题的魅力吧,感觉越刷越上瘾,而且我还比较喜欢在本子上先把思路写一遍然后在整理到 lc 上面我觉得每天刷力扣题也好,每天写一个博客也好,慢慢养成的话,我会觉得这是一个好习惯,对以后的工作啥的帮助肯定会很大,所以只要一有时间我就来刷题,卷起来就完事!!! 给大家分享一下我的笔记,虽然有点丑哈哈哈哈。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:39:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |