数据结构与算法(入门笔记)

所用语言选用python。补充下Class类的相关概念。

class Circle(object) :# 类名首字母大写
    pi = 3.14 #类属性,是类创建所有的实例所共有的属性
    
    
    def _int_(self,r): #默认用_int_创建实例的属性,self代表要创建的实例;初始化一个属性值r;叫构造函数,类实例化自动执行
        self.r = r # 等号左边的r是实例的属性名,等号右边约定俗成与属性名一致


    def get_area(self):
        
        return self.r**2 * self.pi


circle1 = Circle(1) #创建实例,实例名为circle1,实例属性值为1
print(circle.get_area()) #调用get_area方法别忘记带括号


#类的继承
class Animal:
    def eat(self):
        print("%s 吃" %self.name)
    def drink(self):
        print("%s 喝" %self.name)
class Cat(Animal):
    def _int_(self):
        self.name = name
    def cry(self):
        print("%s 喵喵" %self.name)

cat = Cat("狸花猫")
cat.eat()
cat.cry()

#输出结果:
狸花猫 吃
狸花猫 喵喵

更全面介绍详细查看:(作为以后复习用)

Python Class 详解_python class用法理解_Lee木木的博客-CSDN博客Python Class 详解1、基本概念1.1 类 `class`1.2 对象 `instance / object`1.3 面向对象三要素1.4 哲学思想2、类2.1 类的定义2.2 类对象及类属性2.3 类的实例化2.4 `__init__` 方法2.5 实例对象 `instance`2.6 示例 12.7 示例 22.8 示例 33、对象属性3.1属性介绍3.2 实例属性的查找顺序3.3 示例 13.4 示例 23.5 示例 34、类方法 和 静态方法4.1 类方法4.2 静态方法4.3 总结4.4_python class用法理解https://blog.csdn.net/weixin_44983653/article/details/123912636算法复杂度估计较难,有时间复习继续。(已复习)

解决class类问题,就是刷力扣,编写函数问题。第一遍先写出来,第二遍再优化,使得时间和空间复杂度最优。

第一道题两数加和问题。

第二道题数组串联。

第三道题宝石与石头。

第四道题一维数组的动态和。

第五道题转换成小写字母。

第六道题最富有客户的资产质量。

第七道题寻找数组的中心下标。

通过这道题感受到刷力扣算法题的意义,有时候虽然代码写对了,但在运行中的时间和空间复杂度都很高,代价是很高的。所以要看重这两个指标。

第九题轮转数组。

报错,自己在jupter里就正确。

旋转图像类型的问题,我还没有思路,较难,属于中等问题。稍晚补充。

把数组排成最小的数的问题。

总体思路是选择选插入排序方法框架,其中比较大小改成两者之和的大小。虽然通过,但是时间复杂度较高。

移动零问题。

双指针方式真的很巧妙,赞!学到了!

排序数组问题用现在学的冒泡排序、选择排序和插入排序均超时。能通过的用到的是后面学到的排序方式。留到最后练习,每种排序方式都写一次。

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值