Giter Site home page Giter Site logo

l-bydo / onedayonealgo Goto Github PK

View Code? Open in Web Editor NEW
27.0 4.0 21.0 1.9 MB

Learn one algorithm each day, code it, and upload

License: MIT License

Python 18.55% C 13.11% Java 4.05% Jupyter Notebook 12.08% C++ 43.47% JavaScript 7.74% CSS 0.27% HTML 0.73%
algorithms-and-data-structures algorithms programming-language python code java c cpp hacktoberfest

onedayonealgo's Introduction

๐—”๐—ฏ๐—ผ๐˜‚๐˜ ๐—Ÿ-๐—•๐˜†๐——๐—ผ C๐—ผ๐—บ๐—บ๐˜‚๐—ป๐—ถ๐˜๐˜†

We have developed a community to promote Learning By Doing, no matter, what your branch is or from which college you belong.What you need here is a passion for your interests in learning and implementing technology related stuffs. We will act as facilitators while anyone joining this community acts as a volunteer.โœ… The soul aim of this initiative is to bring together all the tech heads, who are committed to enhance their knowledge,so as to promote collaborative learning and problem solving. We will be having virtual discussions on different topics of concern.Alongwith it ,we will be constantly sharing important information from various resources.๐Ÿ“š

This ๐‘ถ๐’๐’†๐‘ซ๐’‚๐’š๐‘ถ๐’๐’†๐‘จ๐’๐’ˆ๐’ is a series that we are conducting here on GitHub as a part of L-ByDo Community. You will have algorithms to solve each day, code it in whatever language you are comfortable with and upload your file here.

๐—–๐—ผ๐—ป๐˜๐—ฟ๐—ถ๐—ฏ๐˜‚๐˜๐—ถ๐—ผ๐—ป ๐—ด๐˜‚๐—ถ๐—ฑ๐—ฒ๐—น๐—ถ๐—ป๐—ฒ๐˜€

1.๐˜พ๐™ค๐™ข๐™ข๐™ช๐™ฃ๐™ž๐™˜๐™–๐™ฉ๐™ž๐™ฃ๐™œ ๐™š๐™›๐™›๐™š๐™˜๐™ฉ๐™ž๐™ซ๐™š๐™ก๐™ฎ:

Whether youโ€™re a one-time contributor or trying to join a community, working with others is one of the most important skills youโ€™ll develop in open source. Before you open an issue or pull request, or ask a question in chat, keep these points in mind to help your ideas come across effectively.

  • ๐‘ฎ๐’Š๐’—๐’† ๐‘ช๐’๐’๐’•๐’†๐’™๐’• : Help others get quickly up to speed. If youโ€™re running into an error, explain what youโ€™re trying to do and how to reproduce it. If youโ€™re suggesting a new idea, explain why you think itโ€™d be useful to the project (not just to you!).

  • ๐‘ซ๐’ ๐’š๐’๐’–๐’“ ๐’‰๐’๐’Ž๐’†๐’˜๐’๐’“๐’Œ ๐’ƒ๐’†๐’‡๐’๐’“๐’†๐’‰๐’‚๐’๐’…: Itโ€™s OK not to know things, but show that you tried. Before asking for help, be sure to check a projectโ€™s README, documentation, issues (open or closed), mailing list, and search the internet for an answer. People will appreciate when you demonstrate that youโ€™re trying to learn.

  • ๐‘ฒ๐’†๐’†๐’‘ ๐’“๐’†๐’’๐’–๐’†๐’”๐’•๐’” ๐’”๐’‰๐’๐’“๐’• ๐’‚๐’๐’… ๐’…๐’Š๐’“๐’†๐’„๐’•: Much like sending an email, every contribution, no matter how simple or helpful, requires someone elseโ€™s review. Many projects have more incoming requests than people available to help. Be concise. You will increase the chance that someone will be able to help you.

  • ๐‘ฒ๐’†๐’†๐’‘ ๐’‚๐’๐’ ๐’„๐’๐’Ž๐’Ž๐’–๐’๐’Š๐’„๐’‚๐’•๐’Š๐’๐’ ๐’‘๐’–๐’ƒ๐’๐’Š๐’„: Although itโ€™s tempting, donโ€™t reach out to maintainers privately unless you need to share sensitive information (such as a security issue or serious conduct violation). When you keep the conversation public, more people can learn and benefit from your exchange. Discussions can be, in themselves, contributions.

  • ๐‘ฐ๐’•โ€™๐’” ๐’๐’Œ๐’‚๐’š ๐’•๐’ ๐’‚๐’”๐’Œ ๐’’๐’–๐’†๐’”๐’•๐’Š๐’๐’๐’” (๐’ƒ๐’–๐’• ๐’ƒ๐’† ๐’‘๐’‚๐’•๐’Š๐’†๐’๐’•!): Everybody was new to the project at some point, and even experienced contributors need to get up to speed when they look at a new project. By the same token, even longtime maintainers are not always familiar with every part of the project. Show them the same patience that youโ€™d want them to show to you.

  • ๐‘น๐’†๐’”๐’‘๐’†๐’„๐’• ๐’„๐’๐’Ž๐’Ž๐’–๐’๐’Š๐’•๐’š ๐’…๐’†๐’„๐’Š๐’”๐’Š๐’๐’๐’”: Your ideas may differ from the communityโ€™s priorities or vision. They may offer feedback or decide not to pursue your idea. While you should discuss and look for compromise, maintainers have to live with your decision longer than you will. If you disagree with their direction, you can always work on your own fork or start your own project.

  • ๐‘จ๐’ƒ๐’๐’—๐’† ๐’‚๐’๐’, ๐’Œ๐’†๐’†๐’‘ ๐’Š๐’• ๐’„๐’๐’‚๐’”๐’”๐’š: Open source is made up of collaborators from all over the world. Context gets lost across languages, cultures, geographies, and time zones. In addition, written communication makes it harder to convey a tone or mood. Assume good intentions in these conversations. Itโ€™s fine to politely push back on an idea, ask for more context, or further clarify your position. Just try to leave the internet a better place than when you found it.

2.๐™‚๐™–๐™ฉ๐™๐™š๐™ง๐™ž๐™ฃ๐™œ ๐™˜๐™ค๐™ฃ๐™ฉ๐™š๐™ญ๐™ฉ:

Before doing anything, do a quick check to make sure your idea hasnโ€™t been discussed elsewhere. Skim the projectโ€™s README, issues (open and closed), mailing list, and Stack Overflow. You donโ€™t have to spend hours going through everything, but a quick search for a few key terms goes a long way. If you canโ€™t find your idea elsewhere, youโ€™re ready to make a move. If the project is on GitHub, youโ€™ll likely communicate by opening an issue or pull request:

  • Issues are like starting a conversation or discussion
  • Pull requests are for starting work on a solution

For lightweight communication, such as a clarifying or how-to question, try asking on Stack Overflow, IRC, Slack, or other chat channels, if the project has one Before you open an issue or pull request, check the projectโ€™s contributing docs (usually a file called CONTRIBUTING, or in the README), to see whether you need to include anything specific. For example, they may ask that you follow a template, or require that you use tests. If you want to make a substantial contribution, open an issue to ask before working on it. Itโ€™s helpful to watch the project for a while (on GitHub, you can click โ€œWatchโ€ to be notified of all conversations), and get to know community members, before doing work that might not get accepted.

3.๐™Š๐™ฅ๐™š๐™ฃ๐™ž๐™ฃ๐™œ ๐™–๐™ฃ ๐™ž๐™จ๐™จ๐™ช๐™š:

You should usually open an issue in the following situations:

  • Report an error you canโ€™t solve yourself
  • Discuss a high-level topic or idea (for example, community, vision or policies)
  • Propose a new feature or other project idea

Tips for communicating on issues:

  1. If you see an open issue that you want to tackle, comment on the issue to let people know youโ€™re on it. That way, people are less likely to duplicate your work.
  2. If an issue was opened a while ago, itโ€™s possible that itโ€™s being addressed somewhere else, or has already been resolved, so comment to ask for confirmation before starting work.
  3. If you opened an issue, but figured out the answer later on your own, comment on the issue to let people know, then close the issue. Even documenting that outcome is a contribution to the project.

4.๐™Š๐™ฅ๐™š๐™ฃ๐™ž๐™ฃ๐™œ ๐™– ๐™ฅ๐™ช๐™ก๐™ก ๐™ง๐™š๐™ฆ๐™ช๐™š๐™จ๐™ฉ:

You should usually open a pull request in the following situations:

  • Submit trivial fixes (for example, a typo, a broken link or an obvious error)
  • Start work on a contribution that was already asked for, or that youโ€™ve already discussed, in an issue
  • A pull request doesnโ€™t have to represent finished work. Itโ€™s usually better to open a pull request early on, so others can watch or give feedback on your progress. Just mark it as a โ€œWIPโ€ (Work in Progress) in the subject line. You can always add more commits later.

If the project is on GitHub, hereโ€™s how to submit a pull request:

  1. Fork the repository and clone it locally. Connect your local to the original โ€œupstreamโ€ repository by adding it as a remote. Pull in changes from โ€œupstreamโ€ often so that you stay up to date so that when you submit your pull request, merge conflicts will be less likely. (See more detailed instructions here.)
  2. Create a branch for your edits.
  3. Reference any relevant issues or supporting documentation in your PR (for example, โ€œCloses #37.โ€)
  4. Include screenshots of the before and after if your changes include differences in HTML/CSS. Drag and drop the images into the body of your pull request.
  5. Test your changes! Run your changes against any existing tests if they exist and create new ones when needed. Whether tests exist or not, make sure your changes donโ€™t break the existing project.
  6. Contribute in the style of the project to the best of your abilities. This may mean using indents, semi-colons or comments differently than you would in your own repository, but makes it easier for the maintainer to merge, others to understand and maintain in the future.

You did it ๐Ÿ†

Whether you just made your first open source contribution, or youโ€™re looking for new ways to contribute, we hope youโ€™re inspired to take action.

onedayonealgo's People

Contributors

ahampriyanshu avatar amitagarwalaa57 avatar anushkrishnav avatar apoorve73 avatar damianarado avatar darshanjain2000 avatar kalrasagar avatar kush1101 avatar maaz-bin-asad avatar prasoonjain006 avatar restyled-commits avatar salonigupta1 avatar sanjana-302 avatar shubh2001 avatar toulik-das avatar vaib-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

onedayonealgo's Issues

Test Issue

This issue tests Github Actions Labeler workflow.

NO python code here! Ouch :(

Restructure Directories

Directories need to be restructured using the Best Practices

  • Folders to be renamed according to the naming convention wherever necessary.
  • Files to be renamed according to naming convention wherever necessary.
  • Folders for Languages to be created accordingly, and files to be passed in it. Eg. Cycle_Sort/Python/ should have codes for Cycle Sort using Python only.

NOTE: Check Sorting_Algorithms/Counting_Sort to see the naming convention and directory structure.

Update readme

Mention all ongoing projects, specify contributing guidelines

Auto Issue Labeler

I can create an Auto issue labeler that labels every issue opened as Hacktoberfest and add relevant language based on the topic and description.

Reduce the auxiliary space in recursion.

#this is variation of quick sort algorithm implemented recursively
def quicksort(seq):
    length=len(seq)
    if length<=1: #if only one element or 0, return itself
        return seq
    else:
        pivot=seq.pop()
    great=[]
    low=[]
    def fun(seq,low,great):  #recursion through list
        if len(seq)==0:
            return
        elif seq[0]>pivot:
            great.append(seq[0])  #take larger elements in this array
        else:
            low.append(seq[0])  #take shorter elements in this array
        return fun(seq[1:],low,great)
    fun(seq,low,great)
    return quicksort(low)+[pivot]+quicksort(great)  #add smaller+pivot +larger recursively
print(quicksort([4,3,78,78,43,3,8,79,1000,4,5666]))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.