Skip to main content

Find the longest increasing or decreasing subsequence of a sequence.

Project description

Longest Increasing Subsequence

https://img.shields.io/pypi/v/longest_increasing_subsequence.svg Documentation Status

Find the longest increasing or decreasing subsequence of a sequence.

Install with:

pip install longest_increasing_subsequence

Usage:

from longest_increasing_subsequence import (longest_increasing_subsequence,
                                            longest_decreasing_subsequence,
                                            longest_increasing_subsequence_indices)

longest_increasing_subsequence([0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15])
# [0, 2, 6, 9, 11, 15]

longest_increasing_subsequence([0, 0, 1, 2, 3, 2, 1, 0, 0])
# [0, 0, 1, 2, 2]

longest_decreasing_subsequence([0, 0, 1, 2, 3, 2, 1, 0, 0])
# [3, 2, 1, 0, 0]

longest_increasing_subsequence([0, 0, 1, 2, 3], strict=True)
# [0, 1, 2, 3]

longest_increasing_subsequence(['A', 'B', 'CC', 'D', 'EEE'], key=len)
# ['A', 'B', 'D', 'EEE']

"".join(longest_increasing_subsequence('aababbbdccddd'))
# 'aaabbbccddd'

longest_increasing_subsequence_indices([0, 0, 1, 2, 3, 2, 1, 0, 0])
# [0, 1, 2, 3, 5]

Features

  • Works with arbitrary sequence types (list, tuple, str, numpy array, pandas series, etc.)

  • Works with arbitrary comparable elements (anything that has < and >).

  • Can compute increasing or decreasing subsequences.

  • Can compute strictly increasing or strictly decreasing subsequences.

  • Can compare elements by an optional key function (e.g. compare strings by length).

  • Can return the subsequence or the indices of the subsequence.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.1.0 (2021-02-15)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

longest_increasing_subsequence-0.1.2.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

longest_increasing_subsequence-0.1.2-py2.py3-none-any.whl (6.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file longest_increasing_subsequence-0.1.2.tar.gz.

File metadata

  • Download URL: longest_increasing_subsequence-0.1.2.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for longest_increasing_subsequence-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2b92db61bd6f6e582767c11388fbe523238770f38ed525d45dcd664a5da3b9d3
MD5 bc4c69dc2b5db481c90fc86368428265
BLAKE2b-256 669a063e6f79001ddc2d9ba9f3beeac9e780a4581a89b89557cce808b1f013ff

See more details on using hashes here.

File details

Details for the file longest_increasing_subsequence-0.1.2-py2.py3-none-any.whl.

File metadata

  • Download URL: longest_increasing_subsequence-0.1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for longest_increasing_subsequence-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 04ab89f5dfbcbe607001bf9a09978d5a37f41e6364c2c8bf90558ea78cb2cc52
MD5 bd51843532d2b859c3c332544534f118
BLAKE2b-256 a3694a0fd1e33dfc6a56072468f7d53396eb35844cfd4cd1843670b61497a8d1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page